@lodestar/reqresp 1.7.2 → 1.8.0-dev.10d2839c78

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 (47) hide show
  1. package/lib/ReqResp.d.ts +12 -4
  2. package/lib/ReqResp.js +28 -8
  3. package/lib/ReqResp.js.map +1 -1
  4. package/lib/encoders/requestDecode.d.ts +2 -2
  5. package/lib/encoders/requestDecode.js.map +1 -1
  6. package/lib/encoders/requestEncode.d.ts +2 -2
  7. package/lib/encoders/requestEncode.js.map +1 -1
  8. package/lib/encoders/responseDecode.d.ts +3 -3
  9. package/lib/encoders/responseDecode.js.map +1 -1
  10. package/lib/encoders/responseEncode.d.ts +2 -2
  11. package/lib/encoders/responseEncode.js.map +1 -1
  12. package/lib/encodingStrategies/sszSnappy/decode.js +2 -2
  13. package/lib/encodingStrategies/sszSnappy/decode.js.map +1 -1
  14. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.d.ts +2 -2
  15. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js.map +1 -1
  16. package/lib/protocols/BeaconBlocksByRange.d.ts +3 -3
  17. package/lib/protocols/BeaconBlocksByRange.js.map +1 -1
  18. package/lib/protocols/BeaconBlocksByRoot.d.ts +3 -3
  19. package/lib/protocols/BeaconBlocksByRoot.js.map +1 -1
  20. package/lib/protocols/BlobsSidecarsByRange.d.ts +2 -2
  21. package/lib/protocols/BlobsSidecarsByRange.js.map +1 -1
  22. package/lib/protocols/Goodbye.d.ts +2 -2
  23. package/lib/protocols/Goodbye.js.map +1 -1
  24. package/lib/protocols/LightClientBootstrap.d.ts +2 -2
  25. package/lib/protocols/LightClientBootstrap.js +10 -5
  26. package/lib/protocols/LightClientBootstrap.js.map +1 -1
  27. package/lib/protocols/LightClientFinalityUpdate.d.ts +2 -2
  28. package/lib/protocols/LightClientFinalityUpdate.js +9 -4
  29. package/lib/protocols/LightClientFinalityUpdate.js.map +1 -1
  30. package/lib/protocols/LightClientOptimisticUpdate.d.ts +2 -2
  31. package/lib/protocols/LightClientOptimisticUpdate.js +9 -4
  32. package/lib/protocols/LightClientOptimisticUpdate.js.map +1 -1
  33. package/lib/protocols/LightClientUpdatesByRange.d.ts +2 -2
  34. package/lib/protocols/LightClientUpdatesByRange.js +10 -5
  35. package/lib/protocols/LightClientUpdatesByRange.js.map +1 -1
  36. package/lib/protocols/Metadata.d.ts +3 -3
  37. package/lib/protocols/Metadata.js.map +1 -1
  38. package/lib/protocols/Ping.d.ts +1 -1
  39. package/lib/protocols/Status.d.ts +2 -2
  40. package/lib/protocols/Status.js +9 -4
  41. package/lib/protocols/Status.js.map +1 -1
  42. package/lib/request/index.d.ts +2 -2
  43. package/lib/request/index.js.map +1 -1
  44. package/lib/types.d.ts +64 -4
  45. package/lib/types.js +3 -0
  46. package/lib/types.js.map +1 -1
  47. package/package.json +9 -9
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 { Encoding, ProtocolDefinition, ReqRespRateLimiterOpts } from "./types.js";
6
+ import { DialOnlyProtocolDefinition, Encoding, MixedProtocolDefinition, ReqRespRateLimiterOpts, ProtocolDefinition } 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 {
@@ -37,7 +37,15 @@ export declare class ReqResp {
37
37
  private readonly protocolPrefix;
38
38
  /** `${protocolPrefix}/${method}/${version}/${encoding}` */
39
39
  private readonly registeredProtocols;
40
+ private readonly dialOnlyProtocols;
40
41
  constructor(modules: ReqRespProtocolModules, opts?: ReqRespOpts);
42
+ /**
43
+ * Register protocol which will be used only to dial to other peers
44
+ * The libp2p instance will not handle that protocol
45
+ *
46
+ * Made it explicit method to avoid any developer mistake
47
+ */
48
+ registerDialOnlyProtocol<Req, Resp>(protocol: DialOnlyProtocolDefinition<Req, Resp>, opts?: ReqRespRegisterOpts): void;
41
49
  /**
42
50
  * Register protocol as supported and to libp2p.
43
51
  * async because libp2p registar persists the new protocol list in the peer-store.
@@ -61,8 +69,8 @@ export declare class ReqResp {
61
69
  stop(): Promise<void>;
62
70
  protected sendRequest<Req, Resp>(peerId: PeerId, method: string, versions: number[], encoding: Encoding, body: Req): AsyncIterable<Resp>;
63
71
  private getRequestHandler;
64
- protected onIncomingRequest(_peerId: PeerId, _protocol: ProtocolDefinition): void;
65
- protected onIncomingRequestError(_protocol: ProtocolDefinition<any, any>, _error: RequestError): void;
72
+ protected onIncomingRequest(_peerId: PeerId, _protocol: MixedProtocolDefinition): void;
73
+ protected onIncomingRequestError(_protocol: MixedProtocolDefinition<any, any>, _error: RequestError): void;
66
74
  protected onOutgoingRequestError(_peerId: PeerId, _method: string, _error: RequestError): void;
67
75
  /**
68
76
  * ```
@@ -70,7 +78,7 @@ export declare class ReqResp {
70
78
  * ```
71
79
  * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
72
80
  */
73
- protected formatProtocolID(protocol: Pick<ProtocolDefinition, "method" | "version" | "encoding">): string;
81
+ protected formatProtocolID(protocol: Pick<MixedProtocolDefinition, "method" | "version" | "encoding">): string;
74
82
  }
75
83
  export {};
76
84
  //# sourceMappingURL=ReqResp.d.ts.map
package/lib/ReqResp.js CHANGED
@@ -19,13 +19,32 @@ export class ReqResp {
19
19
  /** Tracks request and responses in a sequential counter */
20
20
  this.reqCount = 0;
21
21
  /** `${protocolPrefix}/${method}/${version}/${encoding}` */
22
+ // Use any to avoid TS error on registering protocol
23
+ // Type 'unknown' is not assignable to type 'Resp'
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
25
  this.registeredProtocols = new Map();
26
+ this.dialOnlyProtocols = new Map();
23
27
  this.libp2p = modules.libp2p;
24
28
  this.logger = modules.logger;
25
29
  this.metrics = modules.metricsRegister ? getMetrics(modules.metricsRegister) : null;
26
30
  this.protocolPrefix = (_a = opts.protocolPrefix) !== null && _a !== void 0 ? _a : DEFAULT_PROTOCOL_PREFIX;
27
31
  this.rateLimiter = new ReqRespRateLimiter(opts);
28
32
  }
33
+ /**
34
+ * Register protocol which will be used only to dial to other peers
35
+ * The libp2p instance will not handle that protocol
36
+ *
37
+ * Made it explicit method to avoid any developer mistake
38
+ */
39
+ registerDialOnlyProtocol(protocol, opts) {
40
+ const protocolID = this.formatProtocolID(protocol);
41
+ // libp2p will throw on error on duplicates, allow to overwrite behavior
42
+ if ((opts === null || opts === void 0 ? void 0 : opts.ignoreIfDuplicate) && this.registeredProtocols.has(protocolID)) {
43
+ return;
44
+ }
45
+ this.registeredProtocols.set(protocolID, protocol);
46
+ this.dialOnlyProtocols.set(protocolID, true);
47
+ }
29
48
  /**
30
49
  * Register protocol as supported and to libp2p.
31
50
  * async because libp2p registar persists the new protocol list in the peer-store.
@@ -34,13 +53,11 @@ export class ReqResp {
34
53
  */
35
54
  async registerProtocol(protocol, opts) {
36
55
  const protocolID = this.formatProtocolID(protocol);
37
- // libp2p will throw on error on duplicates, allow to overwrite behaviour
38
- if ((opts === null || opts === void 0 ? void 0 : opts.ignoreIfDuplicate) && this.registeredProtocols.has(protocolID)) {
39
- return;
40
- }
41
- this.registeredProtocols.set(protocolID, protocol);
42
- if (protocol.inboundRateLimits) {
43
- this.rateLimiter.initRateLimits(protocolID, protocol.inboundRateLimits);
56
+ const { handler: _handler, renderRequestBody: _renderRequestBody, inboundRateLimits, ...rest } = protocol;
57
+ this.registerDialOnlyProtocol(rest, opts);
58
+ this.dialOnlyProtocols.set(protocolID, false);
59
+ if (inboundRateLimits) {
60
+ this.rateLimiter.initRateLimits(protocolID, inboundRateLimits);
44
61
  }
45
62
  return this.libp2p.handle(protocolID, this.getRequestHandler(protocol, protocolID));
46
63
  }
@@ -112,6 +129,9 @@ export class ReqResp {
112
129
  getRequestHandler(protocol, protocolID) {
113
130
  return async ({ connection, stream }) => {
114
131
  var _a, _b, _c, _d, _e, _f;
132
+ if (this.dialOnlyProtocols.get(protocolID)) {
133
+ throw new Error(`Received request on dial only protocol '${protocolID}'`);
134
+ }
115
135
  const peerId = connection.remotePeer;
116
136
  const peerClient = (_b = (_a = this.opts).getPeerLogMetadata) === null || _b === void 0 ? void 0 : _b.call(_a, peerId.toString());
117
137
  const { method } = protocol;
@@ -123,7 +143,7 @@ export class ReqResp {
123
143
  logger: this.logger,
124
144
  stream,
125
145
  peerId,
126
- protocol,
146
+ protocol: protocol,
127
147
  protocolID,
128
148
  rateLimiter: this.rateLimiter,
129
149
  signal: this.controller.signal,
@@ -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 { ProtocolDefinition } from "../types.js";
3
+ import { MixedProtocolDefinition } 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: ProtocolDefinition<Req, Resp>): Sink<Uint8Array | Uint8ArrayList, Promise<Req>>;
10
+ export declare function requestDecode<Req, Resp>(protocol: MixedProtocolDefinition<Req, Resp>): Sink<Uint8Array | Uint8ArrayList, Promise<Req>>;
11
11
  //# sourceMappingURL=requestDecode.d.ts.map
@@ -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,QAAuC;IAEvC,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,OAAQ,IAAuB,CAAC;SACjC;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":"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,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { ProtocolDefinition } from "../types.js";
2
+ import { MixedProtocolDefinition } from "../types.js";
3
3
  /**
4
4
  * Yields byte chunks for a `<request>`
5
5
  * ```bnf
@@ -8,5 +8,5 @@ import { ProtocolDefinition } 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: ProtocolDefinition<Req>, requestBody: Req): AsyncGenerator<Buffer>;
11
+ export declare function requestEncode<Req>(protocol: MixedProtocolDefinition<Req>, requestBody: Req): AsyncGenerator<Buffer>;
12
12
  //# sourceMappingURL=requestEncode.d.ts.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,EAAqB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAM,QAAiC,EAAE,WAAgB;IAC3F,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":"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,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, ProtocolDefinition } from "../types.js";
4
+ import { ContextBytesFactory, MixedProtocolDefinition } from "../types.js";
5
5
  import { RespStatus } from "../interface.js";
6
6
  /**
7
7
  * Internal helper type to signal stream ended early
@@ -17,7 +17,7 @@ declare enum StreamStatus {
17
17
  * result ::= "0" | "1" | "2" | ["128" ... "255"]
18
18
  * ```
19
19
  */
20
- export declare function responseDecode<Resp>(protocol: ProtocolDefinition, cbs: {
20
+ export declare function responseDecode<Resp>(protocol: MixedProtocolDefinition, cbs: {
21
21
  onFirstHeader: () => void;
22
22
  onFirstResponseChunk: () => void;
23
23
  }): (source: AsyncIterable<Uint8Array | Uint8ArrayList>) => AsyncIterable<Resp>;
@@ -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<Resp>(contextBytes: ContextBytesFactory<Resp>, bufferedSource: BufferedSource): Promise<ForkName>;
45
+ export declare function readContextBytes(contextBytes: ContextBytesFactory<unknown>, 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
  */
@@ -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 { ProtocolDefinition, EncodedPayload } from "../types.js";
2
+ import { MixedProtocolDefinition, EncodedPayload, ProtocolDefinition } 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>`
@@ -21,5 +21,5 @@ export declare function responseEncodeSuccess<Req, Resp>(protocol: ProtocolDefin
21
21
  * Only the last `<response_chunk>` is allowed to have a non-zero error code, so this
22
22
  * fn yields exactly one `<error_response>` and afterwards the stream must be terminated
23
23
  */
24
- export declare function responseEncodeError(protocol: Pick<ProtocolDefinition, "encoding">, status: RpcResponseStatusError, errorMessage: string): AsyncGenerator<Buffer>;
24
+ export declare function responseEncodeError(protocol: Pick<MixedProtocolDefinition, "encoding">, status: RpcResponseStatusError, errorMessage: string): AsyncGenerator<Buffer>;
25
25
  //# sourceMappingURL=responseEncode.d.ts.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":"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"}
@@ -40,8 +40,8 @@ export async function readSszSnappyHeader(bufferedSource, type) {
40
40
  // MUST validate: the unsigned protobuf varint used for the length-prefix MUST not be longer than 10 bytes
41
41
  // Check for varintBytes > 0 to guard against NaN, or 0 values
42
42
  const varintBytes = varint.decode.bytes;
43
- if (varintBytes > MAX_VARINT_BYTES || !(varintBytes > 0)) {
44
- throw new SszSnappyError({ code: SszSnappyErrorCode.INVALID_VARINT_BYTES_COUNT, bytes: varintBytes });
43
+ if (varintBytes === undefined || varintBytes > MAX_VARINT_BYTES || !(varintBytes > 0)) {
44
+ throw new SszSnappyError({ code: SszSnappyErrorCode.INVALID_VARINT_BYTES_COUNT, bytes: varintBytes !== null && varintBytes !== void 0 ? varintBytes : 0 });
45
45
  }
46
46
  buffer.consume(varintBytes);
47
47
  // MUST validate: the length-prefix is within the expected size bounds derived from the payload SSZ type.
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/decode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/decode.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { deneb } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const BeaconBlockAndBlobsSidecarByRoot: ProtocolDefinitionGenerator<deneb.BeaconBlockAndBlobsSidecarByRootRequest, deneb.SignedBeaconBlockAndBlobsSidecar>;
2
+ import { DuplexProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const BeaconBlockAndBlobsSidecarByRoot: DuplexProtocolDefinitionGenerator<deneb.BeaconBlockAndBlobsSidecarByRootRequest, deneb.SignedBeaconBlockAndBlobsSidecar>;
4
4
  //# sourceMappingURL=BeaconBlockAndBlobsSidecarByRoot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BeaconBlockAndBlobsSidecarByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlockAndBlobsSidecarByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAEpF,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAGzC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,wCAAwC;QAChD,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC;QACpE,+BAA+B;QAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC;QAC9D,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACpE,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1F;QACD,iBAAiB,EAAE;YACjB,gMAAgM;YAChM,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAM,EAAC;YACzC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM;SACrC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"BeaconBlockAndBlobsSidecarByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlockAndBlobsSidecarByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAGzC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,wCAAwC;QAChD,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC;QACpE,+BAA+B;QAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC;QAC9D,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACpE,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1F;QACD,iBAAiB,EAAE;YACjB,gMAAgM;YAChM,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAM,EAAC;YACzC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM;SACrC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { allForks, phase0 } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const BeaconBlocksByRange: ProtocolDefinitionGenerator<phase0.BeaconBlocksByRangeRequest, allForks.SignedBeaconBlock>;
4
- export declare const BeaconBlocksByRangeV2: ProtocolDefinitionGenerator<phase0.BeaconBlocksByRangeRequest, allForks.SignedBeaconBlock>;
2
+ import { DuplexProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const BeaconBlocksByRange: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRangeRequest, allForks.SignedBeaconBlock>;
4
+ export declare const BeaconBlocksByRangeV2: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRangeRequest, allForks.SignedBeaconBlock>;
5
5
  //# sourceMappingURL=BeaconBlocksByRange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BeaconBlocksByRange.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAkD,MAAM,aAAa,CAAC;AAExG,yDAAyD;AACzD,MAAM,yBAAyB,GAG3B;IACF,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B;IACxD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;IACvE,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAM,EAAC;QACxD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;KACpC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAG5B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO;QACL,GAAG,yBAAyB;QAC5B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAChD,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAG9B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,GAAG,yBAAyB;QAC5B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5E;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"BeaconBlocksByRange.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAA6D,MAAM,aAAa,CAAC;AAEnH,yDAAyD;AACzD,MAAM,yBAAyB,GAG3B;IACF,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B;IACxD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;IACvE,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAM,EAAC;QACxD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;KACpC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAG5B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO;QACL,GAAG,yBAAyB;QAC5B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAChD,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAG9B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,GAAG,yBAAyB;QAC5B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5E;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { allForks, phase0 } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const BeaconBlocksByRoot: ProtocolDefinitionGenerator<phase0.BeaconBlocksByRootRequest, allForks.SignedBeaconBlock>;
4
- export declare const BeaconBlocksByRootV2: ProtocolDefinitionGenerator<phase0.BeaconBlocksByRootRequest, allForks.SignedBeaconBlock>;
2
+ import { DuplexProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const BeaconBlocksByRoot: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRootRequest, allForks.SignedBeaconBlock>;
4
+ export declare const BeaconBlocksByRootV2: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRootRequest, allForks.SignedBeaconBlock>;
5
5
  //# sourceMappingURL=BeaconBlocksByRoot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BeaconBlocksByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAkD,MAAM,aAAa,CAAC;AAExG,yDAAyD;AACzD,MAAM,wBAAwB,GAG1B;IACF,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;IACvD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACpE,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAM,EAAC;QACzC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM;KACrC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAG3B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO;QACL,GAAG,wBAAwB;QAC3B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAChD,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAG7B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,GAAG,wBAAwB;QAC3B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5E;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"BeaconBlocksByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAEnH,yDAAyD;AACzD,MAAM,wBAAwB,GAG1B;IACF,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;IACvD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACpE,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAM,EAAC;QACzC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM;KACrC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAG3B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO;QACL,GAAG,wBAAwB;QAC3B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAChD,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAG7B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,GAAG,wBAAwB;QAC3B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5E;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { deneb } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const BlobsSidecarsByRange: ProtocolDefinitionGenerator<deneb.BlobsSidecarsByRangeRequest, deneb.BlobsSidecar>;
2
+ import { DuplexProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const BlobsSidecarsByRange: DuplexProtocolDefinitionGenerator<deneb.BlobsSidecarsByRangeRequest, deneb.BlobsSidecar>;
4
4
  //# sourceMappingURL=BlobsSidecarsByRange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlobsSidecarsByRange.js","sourceRoot":"","sources":["../../src/protocols/BlobsSidecarsByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAEpF,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAG7B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B;QACxD,+BAA+B;QAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY;QAC1C,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC;SAC7F;QACD,iBAAiB,EAAE;YACjB,iMAAiM;YACjM,MAAM,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAM,EAAC;YACxD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;SACpC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"BlobsSidecarsByRange.js","sourceRoot":"","sources":["../../src/protocols/BlobsSidecarsByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAG7B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B;QACxD,+BAA+B;QAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY;QAC1C,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC;SAC7F;QACD,iBAAiB,EAAE;YACjB,iMAAiM;YACjM,MAAM,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAM,EAAC;YACxD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;SACpC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { phase0 } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const Goodbye: ProtocolDefinitionGenerator<phase0.Goodbye, phase0.Goodbye>;
2
+ import { DuplexProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const Goodbye: DuplexProtocolDefinitionGenerator<phase0.Goodbye, phase0.Goodbye>;
4
4
  //# sourceMappingURL=Goodbye.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Goodbye.js","sourceRoot":"","sources":["../../src/protocols/Goodbye.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAEpF,gEAAgE;AAChE,MAAM,CAAC,MAAM,OAAO,GAAgE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACxG,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QACrC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QACtC,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;QAC5C,iBAAiB,EAAE;YACjB,sJAAsJ;YACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Goodbye.js","sourceRoot":"","sources":["../../src/protocols/Goodbye.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,OAAO,GAAsE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC9G,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QACrC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QACtC,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;QAC5C,iBAAiB,EAAE;YACjB,sJAAsJ;YACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { Root, allForks } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const LightClientBootstrap: ProtocolDefinitionGenerator<Root, allForks.LightClientBootstrap>;
2
+ import { MixedProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const LightClientBootstrap: MixedProtocolDefinitionGenerator<Root, allForks.LightClientBootstrap>;
4
4
  //# sourceMappingURL=LightClientBootstrap.d.ts.map
@@ -4,22 +4,27 @@ import { toHex } from "@lodestar/utils";
4
4
  import { Encoding } from "../types.js";
5
5
  import { getContextBytesLightclient } from "./utils.js";
6
6
  // eslint-disable-next-line @typescript-eslint/naming-convention
7
- export const LightClientBootstrap = (modules, handler) => {
8
- return {
7
+ export const LightClientBootstrap = ((modules, handler) => {
8
+ const dialProtocol = {
9
9
  method: "light_client_bootstrap",
10
10
  version: 1,
11
11
  encoding: Encoding.SSZ_SNAPPY,
12
- handler,
13
12
  requestType: () => ssz.Root,
14
13
  responseType: (forkName) => isForkLightClient(forkName)
15
14
  ? ssz.allForksLightClient[forkName].LightClientBootstrap
16
15
  : ssz.altair.LightClientBootstrap,
17
- renderRequestBody: (req) => toHex(req),
18
16
  contextBytes: getContextBytesLightclient((bootstrap) => modules.config.getForkName(bootstrap.header.beacon.slot), modules),
17
+ };
18
+ if (!handler)
19
+ return dialProtocol;
20
+ return {
21
+ ...dialProtocol,
22
+ handler,
23
+ renderRequestBody: (req) => toHex(req),
19
24
  inboundRateLimits: {
20
25
  // As similar in the nature of `Status` protocol so we use the same rate limits.
21
26
  byPeer: { quota: 5, quotaTimeMs: 15000 },
22
27
  },
23
28
  };
24
- };
29
+ });
25
30
  //# sourceMappingURL=LightClientBootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LightClientBootstrap.js","sourceRoot":"","sources":["../../src/protocols/LightClientBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAClE,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAqE,CACpG,OAAO,EACP,OAAO,EACP,EAAE;IACF,OAAO;QACL,MAAM,EAAE,wBAAwB;QAChC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI;QAC3B,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,oBAAoB;YACxD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB;QACrC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,YAAY,EAAE,0BAA0B,CACtC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACvE,OAAO,CACR;QACD,iBAAiB,EAAE;YACjB,gFAAgF;YAChF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"LightClientBootstrap.js","sourceRoot":"","sources":["../../src/protocols/LightClientBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAA0E,CAAC,CAC1G,OAAO,EACP,OAAO,EACP,EAAE;IACF,MAAM,YAAY,GAAoE;QACpF,MAAM,EAAE,wBAAwB;QAChC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI;QAC3B,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,oBAAoB;YACxD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB;QACrC,YAAY,EAAE,0BAA0B,CACtC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACvE,OAAO,CACR;KACF,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,iBAAiB,EAAE;YACjB,gFAAgF;YAChF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAA0E,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { allForks } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const LightClientFinalityUpdate: ProtocolDefinitionGenerator<null, allForks.LightClientFinalityUpdate>;
2
+ import { MixedProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const LightClientFinalityUpdate: MixedProtocolDefinitionGenerator<null, allForks.LightClientFinalityUpdate>;
4
4
  //# sourceMappingURL=LightClientFinalityUpdate.d.ts.map
@@ -3,22 +3,27 @@ import { isForkLightClient } from "@lodestar/params";
3
3
  import { Encoding } from "../types.js";
4
4
  import { getContextBytesLightclient } from "./utils.js";
5
5
  // eslint-disable-next-line @typescript-eslint/naming-convention
6
- export const LightClientFinalityUpdate = (modules, handler) => {
7
- return {
6
+ export const LightClientFinalityUpdate = ((modules, handler) => {
7
+ const dialProtocol = {
8
8
  method: "light_client_finality_update",
9
9
  version: 1,
10
10
  encoding: Encoding.SSZ_SNAPPY,
11
- handler,
12
11
  requestType: () => null,
13
12
  responseType: (forkName) => isForkLightClient(forkName)
14
13
  ? ssz.allForksLightClient[forkName].LightClientFinalityUpdate
15
14
  : ssz.altair.LightClientFinalityUpdate,
16
15
  contextBytes: getContextBytesLightclient((update) => modules.config.getForkName(update.signatureSlot), modules),
16
+ };
17
+ if (!handler)
18
+ return dialProtocol;
19
+ return {
20
+ ...dialProtocol,
21
+ handler,
17
22
  inboundRateLimits: {
18
23
  // Finality updates should not be requested more than once per epoch.
19
24
  // Allow 2 per slot and a very safe bound until there's more testing of real usage.
20
25
  byPeer: { quota: 2, quotaTimeMs: 12000 },
21
26
  },
22
27
  };
23
- };
28
+ });
24
29
  //# sourceMappingURL=LightClientFinalityUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LightClientFinalityUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientFinalityUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAClE,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAA0E,CAC9G,OAAO,EACP,OAAO,EACP,EAAE;IACF,OAAO;QACL,MAAM,EAAE,8BAA8B;QACtC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;QACvB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,yBAAyB;YAC7D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;QAC1C,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAC/G,iBAAiB,EAAE;YACjB,qEAAqE;YACrE,mFAAmF;YACnF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"LightClientFinalityUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientFinalityUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAA+E,CAAC,CACpH,OAAO,EACP,OAAO,EACP,EAAE;IACF,MAAM,YAAY,GAAyE;QACzF,MAAM,EAAE,8BAA8B;QACtC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;QACvB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,yBAAyB;YAC7D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;QAC1C,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;KAChH,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE;YACjB,qEAAqE;YACrE,mFAAmF;YACnF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAA+E,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { allForks } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const LightClientOptimisticUpdate: ProtocolDefinitionGenerator<null, allForks.LightClientOptimisticUpdate>;
2
+ import { MixedProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const LightClientOptimisticUpdate: MixedProtocolDefinitionGenerator<null, allForks.LightClientOptimisticUpdate>;
4
4
  //# sourceMappingURL=LightClientOptimisticUpdate.d.ts.map
@@ -3,22 +3,27 @@ import { isForkLightClient } from "@lodestar/params";
3
3
  import { Encoding } from "../types.js";
4
4
  import { getContextBytesLightclient } from "./utils.js";
5
5
  // eslint-disable-next-line @typescript-eslint/naming-convention
6
- export const LightClientOptimisticUpdate = (modules, handler) => {
7
- return {
6
+ export const LightClientOptimisticUpdate = ((modules, handler) => {
7
+ const dialProtocol = {
8
8
  method: "light_client_optimistic_update",
9
9
  version: 1,
10
10
  encoding: Encoding.SSZ_SNAPPY,
11
- handler,
12
11
  requestType: () => null,
13
12
  responseType: (forkName) => isForkLightClient(forkName)
14
13
  ? ssz.allForksLightClient[forkName].LightClientOptimisticUpdate
15
14
  : ssz.altair.LightClientOptimisticUpdate,
16
15
  contextBytes: getContextBytesLightclient((update) => modules.config.getForkName(update.signatureSlot), modules),
16
+ };
17
+ if (!handler)
18
+ return dialProtocol;
19
+ return {
20
+ ...dialProtocol,
21
+ handler,
17
22
  inboundRateLimits: {
18
23
  // Optimistic updates should not be requested more than once per slot.
19
24
  // Allow 2 per slot and a very safe bound until there's more testing of real usage.
20
25
  byPeer: { quota: 2, quotaTimeMs: 12000 },
21
26
  },
22
27
  };
23
- };
28
+ });
24
29
  //# sourceMappingURL=LightClientOptimisticUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAClE,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAA4E,CAClH,OAAO,EACP,OAAO,EACP,EAAE;IACF,OAAO;QACL,MAAM,EAAE,gCAAgC;QACxC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;QACvB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,2BAA2B;YAC/D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B;QAC5C,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAC/G,iBAAiB,EAAE;YACjB,sEAAsE;YACtE,mFAAmF;YACnF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"LightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,2BAA2B,GACtC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACpB,MAAM,YAAY,GAA2E;QAC3F,MAAM,EAAE,gCAAgC;QACxC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;QACvB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,2BAA2B;YAC/D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B;QAC5C,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;KAChH,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE;YACjB,sEAAsE;YACtE,mFAAmF;YACnF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAiF,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { altair, allForks } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const LightClientUpdatesByRange: ProtocolDefinitionGenerator<altair.LightClientUpdatesByRange, allForks.LightClientUpdate>;
2
+ import { MixedProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const LightClientUpdatesByRange: MixedProtocolDefinitionGenerator<altair.LightClientUpdatesByRange, allForks.LightClientUpdate>;
4
4
  //# sourceMappingURL=LightClientUpdatesByRange.d.ts.map
@@ -3,21 +3,26 @@ import { ssz } from "@lodestar/types";
3
3
  import { Encoding } from "../types.js";
4
4
  import { getContextBytesLightclient } from "./utils.js";
5
5
  // eslint-disable-next-line @typescript-eslint/naming-convention
6
- export const LightClientUpdatesByRange = (modules, handler) => {
7
- return {
6
+ export const LightClientUpdatesByRange = ((modules, handler) => {
7
+ const dialProtocol = {
8
8
  method: "light_client_updates_by_range",
9
9
  version: 1,
10
10
  encoding: Encoding.SSZ_SNAPPY,
11
- handler,
12
11
  requestType: () => ssz.altair.LightClientUpdatesByRange,
13
12
  responseType: (forkName) => isForkLightClient(forkName) ? ssz.allForksLightClient[forkName].LightClientUpdate : ssz.altair.LightClientUpdate,
14
- renderRequestBody: (req) => `${req.startPeriod},${req.count}`,
15
13
  contextBytes: getContextBytesLightclient((update) => modules.config.getForkName(update.signatureSlot), modules),
14
+ };
15
+ if (!handler)
16
+ return dialProtocol;
17
+ return {
18
+ ...dialProtocol,
19
+ handler,
20
+ renderRequestBody: (req) => `${req.startPeriod},${req.count}`,
16
21
  inboundRateLimits: {
17
22
  // Same rationale as for BeaconBlocksByRange
18
23
  byPeer: { quota: MAX_REQUEST_LIGHT_CLIENT_UPDATES, quotaTimeMs: 10000 },
19
24
  getRequestCount: (req) => req.count,
20
25
  },
21
26
  };
22
- };
27
+ });
23
28
  //# sourceMappingURL=LightClientUpdatesByRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LightClientUpdatesByRange.js","sourceRoot":"","sources":["../../src/protocols/LightClientUpdatesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAS,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAClE,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAGlC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;QACvD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAClH,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK,EAAE;QAC7D,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAC/G,iBAAiB,EAAE;YACjB,4CAA4C;YAC5C,MAAM,EAAE,EAAC,KAAK,EAAE,gCAAgC,EAAE,WAAW,EAAE,KAAM,EAAC;YACtE,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;SACpC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"LightClientUpdatesByRange.js","sourceRoot":"","sources":["../../src/protocols/LightClientUpdatesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAS,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAGlC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,GAA6F;QAC7G,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;QACvD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAClH,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;KAChH,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK,EAAE;QAC7D,iBAAiB,EAAE;YACjB,4CAA4C;YAC5C,MAAM,EAAE,EAAC,KAAK,EAAE,gCAAgC,EAAE,WAAW,EAAE,KAAM,EAAC;YACtE,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;SACpC;KACF,CAAC;AACJ,CAAC,CAAmG,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { allForks } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const Metadata: ProtocolDefinitionGenerator<null, allForks.Metadata>;
4
- export declare const MetadataV2: ProtocolDefinitionGenerator<null, allForks.Metadata>;
2
+ import { DuplexProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const Metadata: DuplexProtocolDefinitionGenerator<null, allForks.Metadata>;
4
+ export declare const MetadataV2: DuplexProtocolDefinitionGenerator<null, allForks.Metadata>;
5
5
  //# sourceMappingURL=Metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/protocols/Metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAkD,MAAM,aAAa,CAAC;AAExG,yDAAyD;AACzD,MAAM,cAAc,GAGhB;IACF,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;IACvB,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAK,EAAC;KACvC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAyD,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACjG,OAAO;QACL,GAAG,cAAc;QACjB,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;QACvC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAyD,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACnG,OAAO;QACL,GAAG,cAAc;QACjB,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;QACvC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/protocols/Metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAEnH,yDAAyD;AACzD,MAAM,cAAc,GAGhB;IACF,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;IACvB,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAK,EAAC;KACvC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA+D,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvG,OAAO;QACL,GAAG,cAAc;QACjB,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;QACvC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAA+D,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACzG,OAAO;QACL,GAAG,cAAc;QACjB,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;QACvC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { phase0 } from "@lodestar/types";
2
- import { ProtocolDefinition, ReqRespHandler } from "../types.js";
2
+ import { ReqRespHandler, ProtocolDefinition } from "../types.js";
3
3
  export declare function Ping(handler: ReqRespHandler<phase0.Ping, phase0.Ping>): ProtocolDefinition<phase0.Ping, phase0.Ping>;
4
4
  //# sourceMappingURL=Ping.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import { phase0 } from "@lodestar/types";
2
- import { ProtocolDefinitionGenerator } from "../types.js";
3
- export declare const Status: ProtocolDefinitionGenerator<phase0.Status, phase0.Status>;
2
+ import { MixedProtocolDefinitionGenerator } from "../types.js";
3
+ export declare const Status: MixedProtocolDefinitionGenerator<phase0.Status, phase0.Status>;
4
4
  //# sourceMappingURL=Status.d.ts.map
@@ -1,19 +1,24 @@
1
1
  import { ssz } from "@lodestar/types";
2
2
  import { ContextBytesType, Encoding } from "../types.js";
3
3
  // eslint-disable-next-line @typescript-eslint/naming-convention
4
- export const Status = (_modules, handler) => {
5
- return {
4
+ export const Status = ((_modules, handler) => {
5
+ const dialProtocol = {
6
6
  method: "status",
7
7
  version: 1,
8
8
  encoding: Encoding.SSZ_SNAPPY,
9
- handler,
10
9
  requestType: () => ssz.phase0.Status,
11
10
  responseType: () => ssz.phase0.Status,
12
11
  contextBytes: { type: ContextBytesType.Empty },
12
+ };
13
+ if (!handler)
14
+ return dialProtocol;
15
+ return {
16
+ ...dialProtocol,
17
+ handler,
13
18
  inboundRateLimits: {
14
19
  // Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
15
20
  byPeer: { quota: 5, quotaTimeMs: 15000 },
16
21
  },
17
22
  };
18
- };
23
+ });
19
24
  //# sourceMappingURL=Status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/protocols/Status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAEpF,gEAAgE;AAChE,MAAM,CAAC,MAAM,MAAM,GAA8D,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACrG,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;QACpC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;QACrC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;QAC5C,iBAAiB,EAAE;YACjB,sJAAsJ;YACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/protocols/Status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAA8B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AAErH,gEAAgE;AAChE,MAAM,CAAC,MAAM,MAAM,GAAmE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC3G,MAAM,YAAY,GAA6D;QAC7E,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;QACpC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;QACrC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE;YACjB,sJAAsJ;YACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAmE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { PeerId } from "@libp2p/interface-peer-id";
2
2
  import { Libp2p } from "libp2p";
3
3
  import { Logger } from "@lodestar/utils";
4
- import { ProtocolDefinition } from "../types.js";
4
+ import { MixedProtocolDefinition } from "../types.js";
5
5
  import { RequestError, RequestErrorCode } from "./errors.js";
6
6
  export { RequestError, RequestErrorCode };
7
7
  export declare const DEFAULT_DIAL_TIMEOUT: number;
@@ -34,5 +34,5 @@ type SendRequestModules = {
34
34
  * - Any part of the response_chunk fails validation. Throws a typed error (see `SszSnappyError`)
35
35
  * - The maximum number of requested chunks are read. Does not throw, returns read chunks only.
36
36
  */
37
- export declare function sendRequest<Req, Resp>({ logger, libp2p, peerClient }: SendRequestModules, peerId: PeerId, protocols: ProtocolDefinition[], protocolIDs: string[], requestBody: Req, signal?: AbortSignal, opts?: SendRequestOpts, requestId?: number): AsyncIterable<Resp>;
37
+ export declare function sendRequest<Req, Resp>({ logger, libp2p, peerClient }: SendRequestModules, peerId: PeerId, protocols: MixedProtocolDefinition[], protocolIDs: string[], requestBody: Req, signal?: AbortSignal, opts?: SendRequestOpts, requestId?: number): AsyncIterable<Resp>;
38
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -4,21 +4,39 @@ import { ForkName } from "@lodestar/params";
4
4
  import { Slot } from "@lodestar/types";
5
5
  import { LodestarError } from "@lodestar/utils";
6
6
  import { RateLimiterQuota } from "./rate_limiter/rateLimiterGRCA.js";
7
+ /**
8
+ * The encoding of the request/response payload
9
+ */
7
10
  export declare enum EncodedPayloadType {
8
11
  ssz = 0,
9
12
  bytes = 1
10
13
  }
14
+ /**
15
+ * Wrapper for the request/response payload for SSZ type data
16
+ */
11
17
  export interface EncodedPayloadSsz<T> {
12
18
  type: EncodedPayloadType.ssz;
13
19
  data: T;
14
20
  }
21
+ /**
22
+ * Wrapper for the request/response payload for binary type data
23
+ */
15
24
  export interface EncodedPayloadBytes {
16
25
  type: EncodedPayloadType.bytes;
17
26
  bytes: Uint8Array;
18
27
  contextBytes: ContextBytes;
19
28
  }
29
+ /**
30
+ * Wrapper for the request/response payload
31
+ */
20
32
  export type EncodedPayload<T> = EncodedPayloadSsz<T> | EncodedPayloadBytes;
33
+ /**
34
+ * Request handler
35
+ */
21
36
  export type ReqRespHandler<Req, Resp> = (req: Req, peerId: PeerId) => AsyncIterable<EncodedPayload<Resp>>;
37
+ /**
38
+ * ReqResp Protocol Deceleration
39
+ */
22
40
  export interface Protocol {
23
41
  readonly protocolPrefix: string;
24
42
  /** Protocol name identifier `beacon_blocks_by_range` or `status` */
@@ -27,11 +45,27 @@ export interface Protocol {
27
45
  readonly version: number;
28
46
  readonly encoding: Encoding;
29
47
  }
48
+ /**
49
+ * Inbound rate limiter quota for the protocol
50
+ */
30
51
  export interface InboundRateLimitQuota<Req = unknown> {
52
+ /**
53
+ * Will be tracked for the protocol per peer
54
+ */
31
55
  byPeer?: RateLimiterQuota;
56
+ /**
57
+ * Will be tracked regardless of the peer
58
+ */
32
59
  total?: RateLimiterQuota;
60
+ /**
61
+ * Some requests may be counted multiple e.g. getBlocksByRange
62
+ * for such implement this method else `1` will be used default
63
+ */
33
64
  getRequestCount?: (req: Req) => number;
34
65
  }
66
+ /**
67
+ * ReqResp Protocol definition for full duplex protocols
68
+ */
35
69
  export interface ProtocolDefinition<Req = unknown, Resp = unknown> extends Omit<Protocol, "protocolPrefix"> {
36
70
  handler: ReqRespHandler<Req, Resp>;
37
71
  requestType: (fork: ForkName) => TypeSerializer<Req> | null;
@@ -41,10 +75,33 @@ export interface ProtocolDefinition<Req = unknown, Resp = unknown> extends Omit<
41
75
  contextBytes: ContextBytesFactory<Resp>;
42
76
  inboundRateLimits?: InboundRateLimitQuota<Req>;
43
77
  }
44
- export type ProtocolDefinitionGenerator<Req, Res> = (modules: {
78
+ /**
79
+ * ReqResp Protocol definition for dial only protocols
80
+ */
81
+ export interface DialOnlyProtocolDefinition<Req = unknown, Resp = unknown> extends Omit<ProtocolDefinition<Req, Resp>, "handler" | "inboundRateLimits" | "renderRequestBody"> {
82
+ handler?: never;
83
+ inboundRateLimits?: never;
84
+ renderRequestBody?: never;
85
+ }
86
+ /**
87
+ * ReqResp Protocol definition for full duplex and dial only protocols
88
+ */
89
+ export type MixedProtocolDefinition<Req = unknown, Resp = unknown> = DialOnlyProtocolDefinition<Req, Resp> | ProtocolDefinition<Req, Resp>;
90
+ /**
91
+ * ReqResp protocol definition descriptor for full duplex and dial only protocols
92
+ * If handler is not provided, the protocol will be dial only
93
+ * If handler is provided, the protocol will be full duplex
94
+ */
95
+ export type MixedProtocolDefinitionGenerator<Req, Res> = <H extends ReqRespHandler<Req, Res> | undefined = undefined>(modules: {
96
+ config: BeaconConfig;
97
+ }, handler?: H) => H extends undefined ? DialOnlyProtocolDefinition<Req, Res> : ProtocolDefinition<Req, Res>;
98
+ /**
99
+ * ReqResp protocol definition descriptor for full duplex protocols
100
+ */
101
+ export type DuplexProtocolDefinitionGenerator<Req, Res> = (modules: {
45
102
  config: BeaconConfig;
46
103
  }, handler: ReqRespHandler<Req, Res>) => ProtocolDefinition<Req, Res>;
47
- export type HandlerTypeFromMessage<T> = T extends ProtocolDefinitionGenerator<infer Req, infer Res> ? ReqRespHandler<Req, Res> : never;
104
+ export type HandlerTypeFromMessage<T> = T extends DuplexProtocolDefinitionGenerator<infer Req, infer Res> ? ReqRespHandler<Req, Res> : never;
48
105
  export declare const protocolPrefix = "/eth2/beacon_chain/req";
49
106
  /**
50
107
  * Available request/response encoding strategies:
@@ -54,12 +111,12 @@ export declare enum Encoding {
54
111
  SSZ_SNAPPY = "ssz_snappy"
55
112
  }
56
113
  export declare const CONTEXT_BYTES_FORK_DIGEST_LENGTH = 4;
57
- export type ContextBytesFactory<Response> = {
114
+ export type ContextBytesFactory<Resp> = {
58
115
  type: ContextBytesType.Empty;
59
116
  } | {
60
117
  type: ContextBytesType.ForkDigest;
61
118
  forkDigestContext: ForkDigestContext & Pick<ForkConfig, "getForkName">;
62
- forkFromResponse: (response: Response) => ForkName;
119
+ forkFromResponse: (response: Resp) => ForkName;
63
120
  };
64
121
  export type ContextBytes = {
65
122
  type: ContextBytesType.Empty;
@@ -91,6 +148,9 @@ export interface TypeSerializer<T> {
91
148
  minSize: number;
92
149
  equals(a: T, b: T): boolean;
93
150
  }
151
+ /**
152
+ * Rate limiter options for the requests
153
+ */
94
154
  export interface ReqRespRateLimiterOpts {
95
155
  rateLimitMultiplier?: number;
96
156
  onRateLimit?: (peer: PeerId, method: string) => void;
package/lib/types.js CHANGED
@@ -1,4 +1,7 @@
1
1
  import { LodestarError } from "@lodestar/utils";
2
+ /**
3
+ * The encoding of the request/response payload
4
+ */
2
5
  export var EncodedPayloadType;
3
6
  (function (EncodedPayloadType) {
4
7
  EncodedPayloadType[EncodedPayloadType["ssz"] = 0] = "ssz";
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yDAAG,CAAA;IACH,6DAAK,CAAA;AACP,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAyDD,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,qCAAyB,CAAA;AAC3B,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAYlD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,oCAAoC;IACpC,yDAAK,CAAA;IACL,iJAAiJ;IACjJ,mEAAU,CAAA;AACZ,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAED,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,2EAA6C,CAAA;AAC/C,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC;AAID,MAAM,OAAO,sBAAuB,SAAQ,aAAyC;CAAG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C;;GAEG;AACH,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yDAAG,CAAA;IACH,6DAAK,CAAA;AACP,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAkHD,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,qCAAyB,CAAA;AAC3B,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAYlD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,oCAAoC;IACpC,yDAAK,CAAA;IACL,iJAAiJ;IACjJ,mEAAU,CAAA;AACZ,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAED,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,2EAA6C,CAAA;AAC/C,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC;AAID,MAAM,OAAO,sBAAuB,SAAQ,aAAyC;CAAG"}
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.7.2",
14
+ "version": "1.8.0-dev.10d2839c78",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -59,14 +59,14 @@
59
59
  "@chainsafe/snappy-stream": "^5.1.2",
60
60
  "@libp2p/interface-connection": "^3.0.2",
61
61
  "@libp2p/interface-peer-id": "^2.0.1",
62
- "@lodestar/config": "^1.7.2",
63
- "@lodestar/params": "^1.7.2",
64
- "@lodestar/types": "^1.7.2",
65
- "@lodestar/utils": "^1.7.2",
66
- "it-all": "^2.0.0",
62
+ "@lodestar/config": "1.8.0-dev.10d2839c78",
63
+ "@lodestar/params": "1.8.0-dev.10d2839c78",
64
+ "@lodestar/types": "1.8.0-dev.10d2839c78",
65
+ "@lodestar/utils": "1.8.0-dev.10d2839c78",
66
+ "it-all": "^3.0.1",
67
67
  "snappyjs": "^0.7.0",
68
- "stream-to-it": "^0.2.0",
69
- "uint8arraylist": "^2.3.2",
68
+ "stream-to-it": "^0.2.4",
69
+ "uint8arraylist": "^2.4.3",
70
70
  "varint": "^6.0.0"
71
71
  },
72
72
  "peerDependencies": {
@@ -80,5 +80,5 @@
80
80
  "reqresp",
81
81
  "blockchain"
82
82
  ],
83
- "gitHead": "2a727af1e6142d40672fa7c0abef91f42e0f60fc"
83
+ "gitHead": "59d7cfb4b8eed99965735f50dd37c706871d291b"
84
84
  }