@lodestar/reqresp 1.7.2 → 1.8.0-dev.0ed1cd1585

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 (90) hide show
  1. package/README.md +19 -7
  2. package/lib/ReqResp.d.ts +14 -6
  3. package/lib/ReqResp.js +28 -8
  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 +3 -3
  15. package/lib/encoders/responseEncode.js +3 -31
  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 +3 -16
  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 +2 -2
  27. package/lib/index.js.map +1 -1
  28. package/lib/rate_limiter/ReqRespRateLimiter.d.ts +1 -1
  29. package/lib/rate_limiter/ReqRespRateLimiter.js.map +1 -1
  30. package/lib/request/errors.d.ts +5 -14
  31. package/lib/request/errors.js +3 -11
  32. package/lib/request/errors.js.map +1 -1
  33. package/lib/request/index.d.ts +2 -2
  34. package/lib/request/index.js +12 -17
  35. package/lib/request/index.js.map +1 -1
  36. package/lib/response/index.d.ts +4 -4
  37. package/lib/response/index.js +10 -5
  38. package/lib/response/index.js.map +1 -1
  39. package/lib/types.d.ts +96 -53
  40. package/lib/types.js +0 -5
  41. package/lib/types.js.map +1 -1
  42. package/lib/utils/bufferedSource.d.ts +1 -1
  43. package/lib/utils/bufferedSource.js.map +1 -1
  44. package/lib/utils/collectExactOne.js +2 -2
  45. package/lib/utils/collectExactOne.js.map +1 -1
  46. package/lib/utils/protocolId.d.ts +2 -2
  47. package/lib/utils/protocolId.js.map +1 -1
  48. package/package.json +11 -12
  49. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.d.ts +0 -4
  50. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js +0 -27
  51. package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js.map +0 -1
  52. package/lib/protocols/BeaconBlocksByRange.d.ts +0 -5
  53. package/lib/protocols/BeaconBlocksByRange.js +0 -38
  54. package/lib/protocols/BeaconBlocksByRange.js.map +0 -1
  55. package/lib/protocols/BeaconBlocksByRoot.d.ts +0 -5
  56. package/lib/protocols/BeaconBlocksByRoot.js +0 -38
  57. package/lib/protocols/BeaconBlocksByRoot.js.map +0 -1
  58. package/lib/protocols/BlobsSidecarsByRange.d.ts +0 -4
  59. package/lib/protocols/BlobsSidecarsByRange.js +0 -27
  60. package/lib/protocols/BlobsSidecarsByRange.js.map +0 -1
  61. package/lib/protocols/Goodbye.d.ts +0 -4
  62. package/lib/protocols/Goodbye.js +0 -21
  63. package/lib/protocols/Goodbye.js.map +0 -1
  64. package/lib/protocols/LightClientBootstrap.d.ts +0 -4
  65. package/lib/protocols/LightClientBootstrap.js +0 -25
  66. package/lib/protocols/LightClientBootstrap.js.map +0 -1
  67. package/lib/protocols/LightClientFinalityUpdate.d.ts +0 -4
  68. package/lib/protocols/LightClientFinalityUpdate.js +0 -24
  69. package/lib/protocols/LightClientFinalityUpdate.js.map +0 -1
  70. package/lib/protocols/LightClientOptimisticUpdate.d.ts +0 -4
  71. package/lib/protocols/LightClientOptimisticUpdate.js +0 -24
  72. package/lib/protocols/LightClientOptimisticUpdate.js.map +0 -1
  73. package/lib/protocols/LightClientUpdatesByRange.d.ts +0 -4
  74. package/lib/protocols/LightClientUpdatesByRange.js +0 -23
  75. package/lib/protocols/LightClientUpdatesByRange.js.map +0 -1
  76. package/lib/protocols/Metadata.d.ts +0 -5
  77. package/lib/protocols/Metadata.js +0 -31
  78. package/lib/protocols/Metadata.js.map +0 -1
  79. package/lib/protocols/Ping.d.ts +0 -4
  80. package/lib/protocols/Ping.js +0 -20
  81. package/lib/protocols/Ping.js.map +0 -1
  82. package/lib/protocols/Status.d.ts +0 -4
  83. package/lib/protocols/Status.js +0 -19
  84. package/lib/protocols/Status.js.map +0 -1
  85. package/lib/protocols/index.d.ts +0 -13
  86. package/lib/protocols/index.js +0 -13
  87. package/lib/protocols/index.js.map +0 -1
  88. package/lib/protocols/utils.d.ts +0 -7
  89. package/lib/protocols/utils.js +0 -9
  90. package/lib/protocols/utils.js.map +0 -1
@@ -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
6
  export { ResponseErrorCode, ResponseError } from "./response/errors.js";
7
- export { RequestErrorCode, RequestError, RequestErrorMetadata } from "./request/errors.js";
7
+ export { RequestErrorCode, RequestError } 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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,UAAU,EAA2B,MAAM,cAAc,CAAC;AAClE,OAAO,EAAC,QAAQ,IAAI,eAAe,EAAC,MAAM,YAAY,CAAC,CAAC,uBAAuB;AAC/E,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAc,MAAM,cAAc,CAAC;AAClD,OAAO,EAAC,UAAU,EAA2B,MAAM,cAAc,CAAC;AAClE,OAAO,EAAC,QAAQ,IAAI,eAAe,EAAC,MAAM,YAAY,CAAC,CAAC,uBAAuB;AAC/E,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC"}
@@ -12,7 +12,7 @@ export declare class ReqRespRateLimiter {
12
12
  private lastSeenRequestsByPeer;
13
13
  constructor(opts?: ReqRespRateLimiterOpts | undefined);
14
14
  get enabled(): boolean;
15
- initRateLimits<Req>(protocolID: ProtocolID, rateLimits: InboundRateLimitQuota<Req>): void;
15
+ initRateLimits(protocolID: ProtocolID, rateLimits: InboundRateLimitQuota): void;
16
16
  allows(peerId: PeerId, protocolID: string, requestCount: number): boolean;
17
17
  prune(peerId: PeerId): void;
18
18
  start(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ReqRespRateLimiter.js","sourceRoot":"","sources":["../../src/rate_limiter/ReqRespRateLimiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReqRespRateLimiter.js","sourceRoot":"","sources":["../../src/rate_limiter/ReqRespRateLimiter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { LodestarError } from "@lodestar/utils";
2
- import { Encoding } from "../types.js";
3
2
  import { ResponseError } from "../response/index.js";
4
3
  import { RpcResponseStatusError } from "../interface.js";
5
4
  export declare enum RequestErrorCode {
6
5
  /** `<response_chunk>` had `<result>` === INVALID_REQUEST */
7
6
  INVALID_REQUEST = "REQUEST_ERROR_INVALID_REQUEST",
7
+ INVALID_RESPONSE_SSZ = "REQUEST_ERROR_INVALID_RESPONSE_SSZ",
8
8
  /** `<response_chunk>` had `<result>` === SERVER_ERROR */
9
9
  SERVER_ERROR = "REQUEST_ERROR_SERVER_ERROR",
10
10
  /** `<response_chunk>` had `<result>` === RESOURCE_UNAVAILABLE */
@@ -33,6 +33,9 @@ export declare enum RequestErrorCode {
33
33
  type RequestErrorType = {
34
34
  code: RequestErrorCode.INVALID_REQUEST;
35
35
  errorMessage: string;
36
+ } | {
37
+ code: RequestErrorCode.INVALID_RESPONSE_SSZ;
38
+ errorMessage: string;
36
39
  } | {
37
40
  code: RequestErrorCode.SERVER_ERROR;
38
41
  errorMessage: string;
@@ -64,21 +67,9 @@ type RequestErrorType = {
64
67
  } | {
65
68
  code: RequestErrorCode.REQUEST_RATE_LIMITED;
66
69
  };
67
- export type RequestErrorMetadata = {
68
- method: string;
69
- encoding: Encoding;
70
- peer: string;
71
- };
72
- /**
73
- * Same error types as RequestError but without metadata.
74
- * Top level function sendRequest() must rethrow RequestInternalError with metadata
75
- */
76
- export declare class RequestInternalError extends LodestarError<RequestErrorType> {
70
+ export declare class RequestError extends LodestarError<RequestErrorType> {
77
71
  constructor(type: RequestErrorType);
78
72
  }
79
- export declare class RequestError extends LodestarError<RequestErrorType & RequestErrorMetadata> {
80
- constructor(type: RequestErrorType, metadata: RequestErrorMetadata);
81
- }
82
73
  /**
83
74
  * Parse response status errors into detailed request errors for each status code for easier debugging
84
75
  */
@@ -5,6 +5,7 @@ export var RequestErrorCode;
5
5
  // Declaring specific values of RpcResponseStatusError for error clarity downstream
6
6
  /** `<response_chunk>` had `<result>` === INVALID_REQUEST */
7
7
  RequestErrorCode["INVALID_REQUEST"] = "REQUEST_ERROR_INVALID_REQUEST";
8
+ RequestErrorCode["INVALID_RESPONSE_SSZ"] = "REQUEST_ERROR_INVALID_RESPONSE_SSZ";
8
9
  /** `<response_chunk>` had `<result>` === SERVER_ERROR */
9
10
  RequestErrorCode["SERVER_ERROR"] = "REQUEST_ERROR_SERVER_ERROR";
10
11
  /** `<response_chunk>` had `<result>` === RESOURCE_UNAVAILABLE */
@@ -30,18 +31,9 @@ export var RequestErrorCode;
30
31
  /** Request rate limited */
31
32
  RequestErrorCode["REQUEST_RATE_LIMITED"] = "REQUEST_ERROR_RATE_LIMITED";
32
33
  })(RequestErrorCode || (RequestErrorCode = {}));
33
- /**
34
- * Same error types as RequestError but without metadata.
35
- * Top level function sendRequest() must rethrow RequestInternalError with metadata
36
- */
37
- export class RequestInternalError extends LodestarError {
38
- constructor(type) {
39
- super(type);
40
- }
41
- }
42
34
  export class RequestError extends LodestarError {
43
- constructor(type, metadata) {
44
- super({ ...metadata, ...type }, renderErrorMessage(type));
35
+ constructor(type) {
36
+ super(type, renderErrorMessage(type));
45
37
  }
46
38
  }
47
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/request/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAC,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AAEnE,MAAM,CAAN,IAAY,gBA4BX;AA5BD,WAAY,gBAAgB;IAC1B,mFAAmF;IACnF,4DAA4D;IAC5D,qEAAiD,CAAA;IACjD,yDAAyD;IACzD,+DAA2C,CAAA;IAC3C,iEAAiE;IACjE,uEAAmD,CAAA;IACnD,wEAAwE;IACxE,+EAA2D,CAAA;IAC3D,4DAA4D;IAC5D,+DAA2C,CAAA;IAC3C,uCAAuC;IACvC,2DAAuC,CAAA;IACvC,iEAAiE;IACjE,qEAAiD,CAAA;IACjD,8CAA8C;IAC9C,iEAA6C,CAAA;IAC7C,mFAAmF;IACnF,uEAAmD,CAAA;IACnD,iDAAiD;IACjD,mEAA+C,CAAA;IAC/C,iCAAiC;IACjC,+DAA2C,CAAA;IAC3C,gDAAgD;IAChD,+DAA2C,CAAA;IAC3C,2BAA2B;IAC3B,uEAAmD,CAAA;AACrD,CAAC,EA5BW,gBAAgB,KAAhB,gBAAgB,QA4B3B;AAwBD;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAA+B;IACvE,YAAY,IAAsB;QAChC,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,aAAsD;IACtF,YAAY,IAAsB,EAAE,QAA8B;QAChE,KAAK,CAAC,EAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,CAAgB;IAChE,MAAM,EAAC,YAAY,EAAE,MAAM,EAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,MAAM,EAAE;QACd,KAAK,UAAU,CAAC,eAAe;YAC7B,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAC,CAAC;QAChE,KAAK,UAAU,CAAC,YAAY;YAC1B,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAC,CAAC;QAC7D,KAAK,UAAU,CAAC,oBAAoB;YAClC,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,YAAY,EAAC,CAAC;QACrE;YACE,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC;KAC9E;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAsB;IAChD,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,gBAAgB,CAAC,eAAe,CAAC;QACtC,KAAK,gBAAgB,CAAC,YAAY,CAAC;QACnC,KAAK,gBAAgB,CAAC,oBAAoB,CAAC;QAC3C,KAAK,gBAAgB,CAAC,oBAAoB;YACxC,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C;YACE,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;AACH,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/request/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAC,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AAEnE,MAAM,CAAN,IAAY,gBA6BX;AA7BD,WAAY,gBAAgB;IAC1B,mFAAmF;IACnF,4DAA4D;IAC5D,qEAAiD,CAAA;IACjD,+EAA2D,CAAA;IAC3D,yDAAyD;IACzD,+DAA2C,CAAA;IAC3C,iEAAiE;IACjE,uEAAmD,CAAA;IACnD,wEAAwE;IACxE,+EAA2D,CAAA;IAC3D,4DAA4D;IAC5D,+DAA2C,CAAA;IAC3C,uCAAuC;IACvC,2DAAuC,CAAA;IACvC,iEAAiE;IACjE,qEAAiD,CAAA;IACjD,8CAA8C;IAC9C,iEAA6C,CAAA;IAC7C,mFAAmF;IACnF,uEAAmD,CAAA;IACnD,iDAAiD;IACjD,mEAA+C,CAAA;IAC/C,iCAAiC;IACjC,+DAA2C,CAAA;IAC3C,gDAAgD;IAChD,+DAA2C,CAAA;IAC3C,2BAA2B;IAC3B,uEAAmD,CAAA;AACrD,CAAC,EA7BW,gBAAgB,KAAhB,gBAAgB,QA6B3B;AAkBD,MAAM,OAAO,YAAa,SAAQ,aAA+B;IAC/D,YAAY,IAAsB;QAChC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,CAAgB;IAChE,MAAM,EAAC,YAAY,EAAE,MAAM,EAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,MAAM,EAAE;QACd,KAAK,UAAU,CAAC,eAAe;YAC7B,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAC,CAAC;QAChE,KAAK,UAAU,CAAC,YAAY;YAC1B,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAC,CAAC;QAC7D,KAAK,UAAU,CAAC,oBAAoB;YAClC,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,YAAY,EAAC,CAAC;QACrE;YACE,OAAO,EAAC,IAAI,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC;KAC9E;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAsB;IAChD,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,gBAAgB,CAAC,eAAe,CAAC;QACtC,KAAK,gBAAgB,CAAC,YAAY,CAAC;QACnC,KAAK,gBAAgB,CAAC,oBAAoB,CAAC;QAC3C,KAAK,gBAAgB,CAAC,oBAAoB;YACxC,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C;YACE,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;AACH,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 { MixedProtocol, ResponseIncoming } 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({ logger, libp2p, peerClient }: SendRequestModules, peerId: PeerId, protocols: MixedProtocol[], protocolIDs: string[], requestBody: Uint8Array, signal?: AbortSignal, opts?: SendRequestOpts, requestId?: number): AsyncIterable<ResponseIncoming>;
38
38
  //# sourceMappingURL=index.d.ts.map
@@ -4,7 +4,7 @@ import { prettyPrintPeerId, abortableSource } from "../utils/index.js";
4
4
  import { ResponseError } from "../response/index.js";
5
5
  import { requestEncode } from "../encoders/requestEncode.js";
6
6
  import { responseDecode } from "../encoders/responseDecode.js";
7
- import { RequestError, RequestErrorCode, RequestInternalError, responseStatusErrorToRequestError, } from "./errors.js";
7
+ import { RequestError, RequestErrorCode, responseStatusErrorToRequestError } from "./errors.js";
8
8
  export { RequestError, RequestErrorCode };
9
9
  // Default spec values from https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#configuration
10
10
  export const DEFAULT_DIAL_TIMEOUT = 5 * 1000; // 5 sec
@@ -23,7 +23,7 @@ export const DEFAULT_RESP_TIMEOUT = 10 * 1000; // 10 sec
23
23
  * - The maximum number of requested chunks are read. Does not throw, returns read chunks only.
24
24
  */
25
25
  export async function* sendRequest({ logger, libp2p, peerClient }, peerId, protocols, protocolIDs, requestBody, signal, opts, requestId = 0) {
26
- var _a, _b, _c, _d, _e, _f;
26
+ var _a, _b, _c, _d, _e;
27
27
  if (protocols.length === 0) {
28
28
  throw Error("sendRequest must set > 0 protocols");
29
29
  }
@@ -31,10 +31,9 @@ export async function* sendRequest({ logger, libp2p, peerClient }, peerId, proto
31
31
  const REQUEST_TIMEOUT = (_b = opts === null || opts === void 0 ? void 0 : opts.requestTimeoutMs) !== null && _b !== void 0 ? _b : DEFAULT_REQUEST_TIMEOUT;
32
32
  const TTFB_TIMEOUT = (_c = opts === null || opts === void 0 ? void 0 : opts.ttfbTimeoutMs) !== null && _c !== void 0 ? _c : DEFAULT_TTFB_TIMEOUT;
33
33
  const RESP_TIMEOUT = (_d = opts === null || opts === void 0 ? void 0 : opts.respTimeoutMs) !== null && _d !== void 0 ? _d : DEFAULT_RESP_TIMEOUT;
34
- const peerIdStr = peerId.toString();
35
34
  const peerIdStrShort = prettyPrintPeerId(peerId);
36
- const { method, encoding } = protocols[0];
37
- const logCtx = { method, encoding, client: peerClient, peer: peerIdStrShort, requestId };
35
+ const { method, encoding, version } = protocols[0];
36
+ const logCtx = { method, version, encoding, client: peerClient, peer: peerIdStrShort, requestId };
38
37
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
39
38
  throw new ErrorAborted("sendRequest");
40
39
  }
@@ -63,10 +62,10 @@ export async function* sendRequest({ logger, libp2p, peerClient }, peerId, proto
63
62
  return conn;
64
63
  }, DIAL_TIMEOUT, signal).catch((e) => {
65
64
  if (e instanceof TimeoutError) {
66
- throw new RequestInternalError({ code: RequestErrorCode.DIAL_TIMEOUT });
65
+ throw new RequestError({ code: RequestErrorCode.DIAL_TIMEOUT });
67
66
  }
68
67
  else {
69
- throw new RequestInternalError({ code: RequestErrorCode.DIAL_ERROR, error: e });
68
+ throw new RequestError({ code: RequestErrorCode.DIAL_ERROR, error: e });
70
69
  }
71
70
  });
72
71
  // Parse protocol selected by the responder
@@ -74,7 +73,7 @@ export async function* sendRequest({ logger, libp2p, peerClient }, peerId, proto
74
73
  const protocol = protocolsMap.get(protocolId);
75
74
  if (!protocol)
76
75
  throw Error(`dialProtocol selected unknown protocolId ${protocolId}`);
77
- logger.debug("Req sending request", { ...logCtx, body: (_f = protocol.renderRequestBody) === null || _f === void 0 ? void 0 : _f.call(protocol, requestBody) });
76
+ logger.debug("Req sending request", logCtx);
78
77
  // Spec: The requester MUST close the write side of the stream once it finishes writing the request message
79
78
  // Impl: stream.sink is closed automatically by js-libp2p-mplex when piped source is exhausted
80
79
  // REQUEST_TIMEOUT: Non-spec timeout from sending request until write stream closed by responder
@@ -83,10 +82,10 @@ export async function* sendRequest({ logger, libp2p, peerClient }, peerId, proto
83
82
  // Must close the stream read side (stream.source) manually AND the write side
84
83
  stream.abort(e);
85
84
  if (e instanceof TimeoutError) {
86
- throw new RequestInternalError({ code: RequestErrorCode.REQUEST_TIMEOUT });
85
+ throw new RequestError({ code: RequestErrorCode.REQUEST_TIMEOUT });
87
86
  }
88
87
  else {
89
- throw new RequestInternalError({ code: RequestErrorCode.REQUEST_ERROR, error: e });
88
+ throw new RequestError({ code: RequestErrorCode.REQUEST_ERROR, error: e });
90
89
  }
91
90
  });
92
91
  logger.debug("Req request sent", logCtx);
@@ -113,11 +112,11 @@ export async function* sendRequest({ logger, libp2p, peerClient }, peerId, proto
113
112
  yield* pipe(abortableSource(stream.source, [
114
113
  {
115
114
  signal: ttfbTimeoutController.signal,
116
- getError: () => new RequestInternalError({ code: RequestErrorCode.TTFB_TIMEOUT }),
115
+ getError: () => new RequestError({ code: RequestErrorCode.TTFB_TIMEOUT }),
117
116
  },
118
117
  {
119
118
  signal: respTimeoutController.signal,
120
- getError: () => new RequestInternalError({ code: RequestErrorCode.RESP_TIMEOUT }),
119
+ getError: () => new RequestError({ code: RequestErrorCode.RESP_TIMEOUT }),
121
120
  },
122
121
  ]),
123
122
  // Transforms `Buffer` chunks to yield `ResponseBody` chunks
@@ -149,12 +148,8 @@ export async function* sendRequest({ logger, libp2p, peerClient }, peerId, proto
149
148
  }
150
149
  catch (e) {
151
150
  logger.verbose("Req error", logCtx, e);
152
- const metadata = { method, encoding, peer: peerIdStr };
153
151
  if (e instanceof ResponseError) {
154
- throw new RequestError(responseStatusErrorToRequestError(e), metadata);
155
- }
156
- else if (e instanceof RequestInternalError) {
157
- throw new RequestError(e.type, metadata);
152
+ throw new RequestError(responseStatusErrorToRequestError(e));
158
153
  }
159
154
  else {
160
155
  throw e;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAI7B,OAAO,EAAC,YAAY,EAAU,WAAW,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EAEpB,iCAAiC,GAClC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,CAAC;AAExC,+HAA+H;AAC/H,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;AACtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAmBxD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAChC,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAqB,EAChD,MAAc,EACd,SAA+B,EAC/B,WAAqB,EACrB,WAAgB,EAChB,MAAoB,EACpB,IAAsB,EACtB,SAAS,GAAG,CAAC;;IAEb,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACnD;IAED,MAAM,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,mCAAI,oBAAoB,CAAC;IACjE,MAAM,eAAe,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,mCAAI,uBAAuB,CAAC;IAC1E,MAAM,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,mCAAI,oBAAoB,CAAC;IACjE,MAAM,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,mCAAI,oBAAoB,CAAC;IAEjE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAC,CAAC;IAEvF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE;QACnB,MAAM,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;KACvC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAE1C,IAAI;QACF,sFAAsF;QACtF,0FAA0F;QAC1F,+CAA+C;QAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAC3D,CAAC;QAEF,6EAA6E;QAC7E,qEAAqE;QACrE,EAAE;QACF,yEAAyE;QACzE,8EAA8E;QAC9E,6EAA6E;QAC7E,sBAAsB;QACtB,EAAE;QACF,2EAA2E;QAE3E,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,KAAK,EAAE,sBAAsB,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,EAAC,MAAM,EAAE,sBAAsB,EAAC,CAAC,CAAC;YAC9F,yEAAyE;YACzE,IAAI,CAAC,IAAI;gBAAE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC,EACD,YAAY,EACZ,MAAM,CACP,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,YAAY,YAAY,EAAE;gBAC7B,MAAM,IAAI,oBAAoB,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAC,CAAC,CAAC;aACvE;iBAAM;gBACL,MAAM,IAAI,oBAAoB,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,CAAU,EAAC,CAAC,CAAC;aACxF;QACH,CAAC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,MAAM,UAAU,GAAG,MAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,MAAM,KAAK,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;QAErF,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAA,QAAQ,CAAC,iBAAiB,yDAAG,WAAW,CAAC,EAAC,CAAC,CAAC;QAEnG,2GAA2G;QAC3G,8FAA8F;QAE9F,gGAAgG;QAChG,qGAAqG;QACrG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,KAAK,CAC7G,CAAC,CAAC,EAAE,EAAE;YACJ,8EAA8E;YAC9E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEhB,IAAI,CAAC,YAAY,YAAY,EAAE;gBAC7B,MAAM,IAAI,oBAAoB,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,eAAe,EAAC,CAAC,CAAC;aAC1E;iBAAM;gBACL,MAAM,IAAI,oBAAoB,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,CAAU,EAAC,CAAC,CAAC;aAC3F;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAE1C,sGAAsG;QACtG,4DAA4D;QAC5D,IAAI,QAAQ,CAAC,cAAc,EAAE;YAC3B,OAAO;SACR;QAED,0GAA0G;QAC1G,6FAA6F;QAC7F,2GAA2G;QAC3G,8EAA8E;QAC9E,MAAM,qBAAqB,GAAG,IAAI,eAAe,EAAE,CAAC;QACpD,MAAM,qBAAqB,GAAG,IAAI,eAAe,EAAE,CAAC;QAEpD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QAClF,IAAI,WAAW,GAA0B,IAAI,CAAC;QAE9C,MAAM,kBAAkB,GAAG,GAAS,EAAE;YACpC,IAAI,WAAW;gBAAE,YAAY,CAAC,WAAW,CAAC,CAAC;YAC3C,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QAC9E,CAAC,CAAC;QAEF,IAAI;YACF,qGAAqG;YACrG,KAAK,CAAC,CAAC,IAAI,CACT,eAAe,CAAC,MAAM,CAAC,MAAuC,EAAE;gBAC9D;oBACE,MAAM,EAAE,qBAAqB,CAAC,MAAM;oBACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAC,CAAC;iBAChF;gBACD;oBACE,MAAM,EAAE,qBAAqB,CAAC,MAAM;oBACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAC,CAAC;iBAChF;aACF,CAAC;YAEF,4DAA4D;YAC5D,cAAc,CAAC,QAAQ,EAAE;gBACvB,aAAa;oBACX,4EAA4E;oBAC5E,YAAY,CAAC,WAAW,CAAC,CAAC;oBAC1B,kBAAkB,EAAE,CAAC;gBACvB,CAAC;gBACD,oBAAoB;oBAClB,yEAAyE;oBACzE,kBAAkB,EAAE,CAAC;gBACvB,CAAC;aACF,CAAC,CACH,CAAC;YAEF,0EAA0E;YAC1E,8DAA8D;YAC9D,yEAAyE;YACzE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAC,GAAG,MAAM,EAAC,CAAC,CAAC;SAC1C;gBAAS;YACR,YAAY,CAAC,WAAW,CAAC,CAAC;YAC1B,IAAI,WAAW,KAAK,IAAI;gBAAE,YAAY,CAAC,WAAW,CAAC,CAAC;YAEpD,+GAA+G;YAC/G,8EAA8E;YAC9E,mGAAmG;YACnG,MAAM,CAAC,KAAK,EAAE,CAAC;SAChB;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,CAAU,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAyB,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QAE3E,IAAI,CAAC,YAAY,aAAa,EAAE;YAC9B,MAAM,IAAI,YAAY,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SACxE;aAAM,IAAI,CAAC,YAAY,oBAAoB,EAAE;YAC5C,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC1C;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { PeerId } from "@libp2p/interface-peer-id";
2
2
  import { Stream } from "@libp2p/interface-connection";
3
3
  import { Logger } from "@lodestar/utils";
4
- import { ProtocolDefinition } from "../types.js";
4
+ import { Protocol } from "../types.js";
5
5
  import { ReqRespRateLimiter } from "../rate_limiter/ReqRespRateLimiter.js";
6
6
  import { ResponseError } from "./errors.js";
7
7
  export { ResponseError };
8
8
  export declare const DEFAULT_REQUEST_TIMEOUT: number;
9
- export interface HandleRequestOpts<Req, Resp> {
9
+ export interface HandleRequestOpts {
10
10
  logger: Logger;
11
11
  stream: Stream;
12
12
  peerId: PeerId;
13
- protocol: ProtocolDefinition<Req, Resp>;
13
+ protocol: Protocol;
14
14
  protocolID: string;
15
15
  rateLimiter: ReqRespRateLimiter;
16
16
  signal?: AbortSignal;
@@ -30,5 +30,5 @@ export interface HandleRequestOpts<Req, Resp> {
30
30
  * 4a. Encode and write `<response_chunks>` to peer
31
31
  * 4b. On error, encode and write an error `<response_chunk>` and stop
32
32
  */
33
- export declare function handleRequest<Req, Resp>({ logger, stream, peerId, protocol, protocolID, rateLimiter, signal, requestId, peerClient, requestTimeoutMs, }: HandleRequestOpts<Req, Resp>): Promise<void>;
33
+ export declare function handleRequest({ logger, stream, peerId, protocol, protocolID, rateLimiter, signal, requestId, peerClient, requestTimeoutMs, }: HandleRequestOpts): Promise<void>;
34
34
  //# sourceMappingURL=index.d.ts.map
@@ -28,7 +28,7 @@ export async function handleRequest({ logger, stream, peerId, protocol, protocol
28
28
  // This syntax allows to recycle stream.sink to send success and error chunks without returning
29
29
  // in case request whose body is a List fails at chunk_i > 0, without breaking out of the for..await..of
30
30
  (async function* requestHandlerSource() {
31
- var _a, _b, _c, _d;
31
+ var _a, _b, _c;
32
32
  try {
33
33
  const requestBody = await withTimeout(() => pipe(stream.source, requestDecode(protocol)), REQUEST_TIMEOUT, signal).catch((e) => {
34
34
  if (e instanceof TimeoutError) {
@@ -38,14 +38,19 @@ export async function handleRequest({ logger, stream, peerId, protocol, protocol
38
38
  throw new ResponseError(RespStatus.INVALID_REQUEST, e.message);
39
39
  }
40
40
  });
41
- logger.debug("Req received", { ...logCtx, body: (_a = protocol.renderRequestBody) === null || _a === void 0 ? void 0 : _a.call(protocol, requestBody) });
42
- const requestCount = (_d = (_c = (_b = protocol === null || protocol === void 0 ? void 0 : protocol.inboundRateLimits) === null || _b === void 0 ? void 0 : _b.getRequestCount) === null || _c === void 0 ? void 0 : _c.call(_b, requestBody)) !== null && _d !== void 0 ? _d : 1;
41
+ logger.debug("Req received", logCtx);
42
+ // Max count by request for byRange and byRoot
43
+ const requestCount = (_c = (_b = (_a = protocol === null || protocol === void 0 ? void 0 : protocol.inboundRateLimits) === null || _a === void 0 ? void 0 : _a.getRequestCount) === null || _b === void 0 ? void 0 : _b.call(_a, requestBody)) !== null && _c !== void 0 ? _c : 1;
43
44
  if (!rateLimiter.allows(peerId, protocolID, requestCount)) {
44
- throw new RequestError({ code: RequestErrorCode.REQUEST_RATE_LIMITED }, { peer: peerId.toString(), method: protocol.method, encoding: protocol.encoding });
45
+ throw new RequestError({ code: RequestErrorCode.REQUEST_RATE_LIMITED });
45
46
  }
47
+ const requestChunk = {
48
+ data: requestBody,
49
+ version: protocol.version,
50
+ };
46
51
  yield* pipe(
47
52
  // TODO: Debug the reason for type conversion here
48
- protocol.handler(requestBody, peerId),
53
+ protocol.handler(requestChunk, peerId),
49
54
  // NOTE: Do not log the resp chunk contents, logs get extremely cluttered
50
55
  // Note: Not logging on each chunk since after 1 year it hasn't add any value when debugging
51
56
  // onChunk(() => logger.debug("Resp sending chunk", logCtx)),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -1,25 +1,66 @@
1
1
  import { PeerId } from "@libp2p/interface-peer-id";
2
- import { BeaconConfig, ForkConfig, ForkDigestContext } from "@lodestar/config";
2
+ import { BeaconConfig, ForkDigestContext } from "@lodestar/config";
3
3
  import { ForkName } from "@lodestar/params";
4
- import { Slot } from "@lodestar/types";
5
4
  import { LodestarError } from "@lodestar/utils";
6
5
  import { RateLimiterQuota } from "./rate_limiter/rateLimiterGRCA.js";
7
- export declare enum EncodedPayloadType {
8
- ssz = 0,
9
- bytes = 1
6
+ export declare const protocolPrefix = "/eth2/beacon_chain/req";
7
+ /**
8
+ * Available request/response encoding strategies:
9
+ * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#encoding-strategies
10
+ */
11
+ export declare enum Encoding {
12
+ SSZ_SNAPPY = "ssz_snappy"
10
13
  }
11
- export interface EncodedPayloadSsz<T> {
12
- type: EncodedPayloadType.ssz;
13
- data: T;
14
+ export declare const CONTEXT_BYTES_FORK_DIGEST_LENGTH = 4;
15
+ /**
16
+ * Wrapper for the request/response payload
17
+ */
18
+ export type ResponseIncoming = {
19
+ data: Uint8Array;
20
+ fork: ForkName;
21
+ protocolVersion: number;
22
+ };
23
+ export type ResponseOutgoing = {
24
+ data: Uint8Array;
25
+ fork: ForkName;
26
+ };
27
+ /**
28
+ * Rate limiter options for the requests
29
+ */
30
+ export interface ReqRespRateLimiterOpts {
31
+ rateLimitMultiplier?: number;
32
+ onRateLimit?: (peer: PeerId, method: string) => void;
14
33
  }
15
- export interface EncodedPayloadBytes {
16
- type: EncodedPayloadType.bytes;
17
- bytes: Uint8Array;
18
- contextBytes: ContextBytes;
34
+ /**
35
+ * Inbound rate limiter quota for the protocol
36
+ */
37
+ export interface InboundRateLimitQuota {
38
+ /**
39
+ * Will be tracked for the protocol per peer
40
+ */
41
+ byPeer?: RateLimiterQuota;
42
+ /**
43
+ * Will be tracked regardless of the peer
44
+ */
45
+ total?: RateLimiterQuota;
46
+ /**
47
+ * Some requests may be counted multiple e.g. getBlocksByRange
48
+ * for such implement this method else `1` will be used default
49
+ */
50
+ getRequestCount?: (req: Uint8Array) => number;
19
51
  }
20
- export type EncodedPayload<T> = EncodedPayloadSsz<T> | EncodedPayloadBytes;
21
- export type ReqRespHandler<Req, Resp> = (req: Req, peerId: PeerId) => AsyncIterable<EncodedPayload<Resp>>;
22
- export interface Protocol {
52
+ export type ReqRespRequest = {
53
+ data: Uint8Array;
54
+ version: number;
55
+ };
56
+ /**
57
+ * Request handler
58
+ */
59
+ export type ProtocolHandler = (req: ReqRespRequest, peerId: PeerId) => AsyncIterable<ResponseOutgoing>;
60
+ /**
61
+ * ReqResp Protocol Deceleration
62
+ */
63
+ export interface ProtocolAttributes {
23
64
  readonly protocolPrefix: string;
24
65
  /** Protocol name identifier `beacon_blocks_by_range` or `status` */
25
66
  readonly method: string;
@@ -27,45 +68,57 @@ export interface Protocol {
27
68
  readonly version: number;
28
69
  readonly encoding: Encoding;
29
70
  }
30
- export interface InboundRateLimitQuota<Req = unknown> {
31
- byPeer?: RateLimiterQuota;
32
- total?: RateLimiterQuota;
33
- getRequestCount?: (req: Req) => number;
34
- }
35
- export interface ProtocolDefinition<Req = unknown, Resp = unknown> extends Omit<Protocol, "protocolPrefix"> {
36
- handler: ReqRespHandler<Req, Resp>;
37
- requestType: (fork: ForkName) => TypeSerializer<Req> | null;
38
- responseType: (fork: ForkName) => TypeSerializer<Resp>;
71
+ export interface ProtocolDescriptor extends Omit<ProtocolAttributes, "protocolPrefix"> {
72
+ contextBytes: ContextBytesFactory;
39
73
  ignoreResponse?: boolean;
40
- renderRequestBody?: (request: Req) => string;
41
- contextBytes: ContextBytesFactory<Resp>;
42
- inboundRateLimits?: InboundRateLimitQuota<Req>;
43
74
  }
44
- export type ProtocolDefinitionGenerator<Req, Res> = (modules: {
45
- config: BeaconConfig;
46
- }, handler: ReqRespHandler<Req, Res>) => ProtocolDefinition<Req, Res>;
47
- export type HandlerTypeFromMessage<T> = T extends ProtocolDefinitionGenerator<infer Req, infer Res> ? ReqRespHandler<Req, Res> : never;
48
- export declare const protocolPrefix = "/eth2/beacon_chain/req";
49
75
  /**
50
- * Available request/response encoding strategies:
51
- * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#encoding-strategies
76
+ * ReqResp Protocol definition for full duplex protocols
52
77
  */
53
- export declare enum Encoding {
54
- SSZ_SNAPPY = "ssz_snappy"
78
+ export interface Protocol extends ProtocolDescriptor {
79
+ handler: ProtocolHandler;
80
+ inboundRateLimits?: InboundRateLimitQuota;
81
+ requestSizes: TypeSizes | null;
82
+ responseSizes: (fork: ForkName) => TypeSizes;
55
83
  }
56
- export declare const CONTEXT_BYTES_FORK_DIGEST_LENGTH = 4;
57
- export type ContextBytesFactory<Response> = {
84
+ /**
85
+ * ReqResp Protocol definition for dial only protocols
86
+ */
87
+ export interface DialOnlyProtocol extends Omit<Protocol, "handler" | "inboundRateLimits" | "renderRequestBody"> {
88
+ handler?: never;
89
+ inboundRateLimits?: never;
90
+ renderRequestBody?: never;
91
+ }
92
+ /**
93
+ * ReqResp Protocol definition for full duplex and dial only protocols
94
+ */
95
+ export type MixedProtocol = DialOnlyProtocol | Protocol;
96
+ /**
97
+ * ReqResp protocol definition descriptor for full duplex and dial only protocols
98
+ * If handler is not provided, the protocol will be dial only
99
+ * If handler is provided, the protocol will be full duplex
100
+ */
101
+ export type MixedProtocolGenerators = <H extends ProtocolHandler | undefined = undefined>(modules: {
102
+ config: BeaconConfig;
103
+ }, handler?: H) => H extends undefined ? DialOnlyProtocol : Protocol;
104
+ /**
105
+ * ReqResp protocol definition descriptor for full duplex protocols
106
+ */
107
+ export type ProtocolGenerator = (modules: {
108
+ config: BeaconConfig;
109
+ }, handler: ProtocolHandler) => Protocol;
110
+ export type HandlerTypeFromMessage<T> = T extends ProtocolGenerator ? ProtocolHandler : never;
111
+ export type ContextBytesFactory = {
58
112
  type: ContextBytesType.Empty;
59
113
  } | {
60
114
  type: ContextBytesType.ForkDigest;
61
- forkDigestContext: ForkDigestContext & Pick<ForkConfig, "getForkName">;
62
- forkFromResponse: (response: Response) => ForkName;
115
+ forkDigestContext: ForkDigestContext;
63
116
  };
64
117
  export type ContextBytes = {
65
118
  type: ContextBytesType.Empty;
66
119
  } | {
67
120
  type: ContextBytesType.ForkDigest;
68
- forkSlot: Slot;
121
+ fork: ForkName;
69
122
  };
70
123
  export declare enum ContextBytesType {
71
124
  /** 0 bytes chunk, can be ignored */
@@ -81,18 +134,8 @@ export type LightClientServerErrorType = {
81
134
  };
82
135
  export declare class LightClientServerError extends LodestarError<LightClientServerErrorType> {
83
136
  }
84
- /**
85
- * Lightweight interface of ssz Type<T>
86
- */
87
- export interface TypeSerializer<T> {
88
- serialize(data: T): Uint8Array;
89
- deserialize(bytes: Uint8Array): T;
137
+ export type TypeSizes = {
90
138
  maxSize: number;
91
139
  minSize: number;
92
- equals(a: T, b: T): boolean;
93
- }
94
- export interface ReqRespRateLimiterOpts {
95
- rateLimitMultiplier?: number;
96
- onRateLimit?: (peer: PeerId, method: string) => void;
97
- }
140
+ };
98
141
  //# sourceMappingURL=types.d.ts.map
package/lib/types.js CHANGED
@@ -1,9 +1,4 @@
1
1
  import { LodestarError } from "@lodestar/utils";
2
- export var EncodedPayloadType;
3
- (function (EncodedPayloadType) {
4
- EncodedPayloadType[EncodedPayloadType["ssz"] = 0] = "ssz";
5
- EncodedPayloadType[EncodedPayloadType["bytes"] = 1] = "bytes";
6
- })(EncodedPayloadType || (EncodedPayloadType = {}));
7
2
  export const protocolPrefix = "/eth2/beacon_chain/req";
8
3
  /**
9
4
  * Available request/response encoding strategies:
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":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,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;AAuHlD,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"}
@@ -10,7 +10,7 @@ export declare class BufferedSource {
10
10
  isDone: boolean;
11
11
  private buffer;
12
12
  private source;
13
- constructor(source: AsyncGenerator<Uint8ArrayList>);
13
+ constructor(source: AsyncGenerator<Uint8ArrayList | Uint8Array>);
14
14
  [Symbol.asyncIterator](): AsyncIterator<Uint8ArrayList>;
15
15
  }
16
16
  //# sourceMappingURL=bufferedSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bufferedSource.js","sourceRoot":"","sources":["../../src/utils/bufferedSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAKzB,YAAY,MAAsC;QAJlD,WAAM,GAAG,KAAK,CAAC;QAKb,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,OAAO;YACL,KAAK,CAAC,IAAI;gBACR,0DAA0D;gBAC1D,8DAA8D;gBAC9D,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvC,SAAS,GAAG,KAAK,CAAC;oBAClB,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;iBAC1C;gBAED,mEAAmE;gBACnE,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC;iBACvC;qBAAM;oBACL,qEAAqE;oBACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1B,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;iBAC1C;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"bufferedSource.js","sourceRoot":"","sources":["../../src/utils/bufferedSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAKzB,YAAY,MAAmD;QAJ/D,WAAM,GAAG,KAAK,CAAC;QAKb,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,OAAO;YACL,KAAK,CAAC,IAAI;gBACR,0DAA0D;gBAC1D,8DAA8D;gBAC9D,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvC,SAAS,GAAG,KAAK,CAAC;oBAClB,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;iBAC1C;gBAED,mEAAmE;gBACnE,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC;iBACvC;qBAAM;oBACL,qEAAqE;oBACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1B,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;iBAC1C;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { RequestErrorCode, RequestInternalError } from "../request/errors.js";
1
+ import { RequestErrorCode, RequestError } from "../request/errors.js";
2
2
  /**
3
3
  * Sink for `<response_chunk>*`, from
4
4
  * ```bnf
@@ -10,6 +10,6 @@ export async function collectExactOne(source) {
10
10
  for await (const response of source) {
11
11
  return response;
12
12
  }
13
- throw new RequestInternalError({ code: RequestErrorCode.EMPTY_RESPONSE });
13
+ throw new RequestError({ code: RequestErrorCode.EMPTY_RESPONSE });
14
14
  }
15
15
  //# sourceMappingURL=collectExactOne.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collectExactOne.js","sourceRoot":"","sources":["../../src/utils/collectExactOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,MAAwB;IAC/D,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE;QACnC,OAAO,QAAQ,CAAC;KACjB;IACD,MAAM,IAAI,oBAAoB,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,EAAC,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"collectExactOne.js","sourceRoot":"","sources":["../../src/utils/collectExactOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,MAAwB;IAC/D,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE;QACnC,OAAO,QAAQ,CAAC;KACjB;IACD,MAAM,IAAI,YAAY,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,EAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Encoding, Protocol } from "../types.js";
1
+ import { Encoding, ProtocolAttributes } from "../types.js";
2
2
  /**
3
3
  * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
4
4
  */
@@ -6,5 +6,5 @@ export declare function formatProtocolID(protocolPrefix: string, method: string,
6
6
  /**
7
7
  * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
8
8
  */
9
- export declare function parseProtocolID(protocolId: string): Protocol;
9
+ export declare function parseProtocolID(protocolId: string): ProtocolAttributes;
10
10
  //# sourceMappingURL=protocolId.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocolId.js","sourceRoot":"","sources":["../../src/utils/protocolId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,MAAc,EAAE,OAAe,EAAE,QAAkB;IAC1G,OAAO,GAAG,cAAc,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;KACvD;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAa,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5E;IAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;KAC3E;IAED,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpD,mGAAmG;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,wFAAwF;IACxF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpE,OAAO;QACL,cAAc;QACd,MAAM;QACN,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"protocolId.js","sourceRoot":"","sources":["../../src/utils/protocolId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAqB,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,MAAc,EAAE,OAAe,EAAE,QAAkB;IAC1G,OAAO,GAAG,cAAc,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;KACvD;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAa,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5E;IAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;KAC3E;IAED,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpD,mGAAmG;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,wFAAwF;IACxF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpE,OAAO;QACL,cAAc;QACd,MAAM;QACN,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC"}