@lodestar/reqresp 1.9.2 → 1.10.0-dev.03c36e28f7
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.
- package/README.md +1 -1
- package/lib/ReqResp.d.ts +1 -1
- package/lib/ReqResp.js.map +1 -1
- package/lib/encoders/requestDecode.d.ts +2 -2
- package/lib/encoders/requestDecode.js.map +1 -1
- package/lib/encodingStrategies/sszSnappy/encode.d.ts +1 -1
- package/lib/encodingStrategies/sszSnappy/encode.js +3 -17
- package/lib/encodingStrategies/sszSnappy/encode.js.map +1 -1
- package/lib/encodingStrategies/sszSnappy/snappyFrames/common.d.ts +10 -0
- package/lib/encodingStrategies/sszSnappy/snappyFrames/common.js +10 -0
- package/lib/encodingStrategies/sszSnappy/snappyFrames/common.js.map +1 -0
- package/lib/encodingStrategies/sszSnappy/snappyFrames/compress.d.ts +3 -0
- package/lib/encodingStrategies/sszSnappy/snappyFrames/compress.js +50 -0
- package/lib/encodingStrategies/sszSnappy/snappyFrames/compress.js.map +1 -0
- package/lib/encodingStrategies/sszSnappy/snappyFrames/uncompress.js +1 -8
- package/lib/encodingStrategies/sszSnappy/snappyFrames/uncompress.js.map +1 -1
- package/lib/request/index.d.ts +1 -1
- package/package.json +15 -13
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://discord.gg/aMxzVcr)
|
|
4
4
|
[](https://github.com/ethereum/beacon-APIs/releases/tag/v2.1.0)
|
|
5
5
|

|
|
6
|
-

|
|
7
7
|
|
|
8
8
|
> This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project
|
|
9
9
|
|
package/lib/ReqResp.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PeerId } from "@libp2p/interface-peer-id";
|
|
2
|
-
import { Libp2p } from "libp2p";
|
|
2
|
+
import type { 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";
|
package/lib/ReqResp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAK5C,OAAO,EAAC,UAAU,EAA2B,MAAM,cAAc,CAAC;AAClE,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAUlD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AAIxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAkBhE;;;;;GAKG;AACH,MAAM,OAAO,OAAO;IAoBlB,
|
|
1
|
+
{"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Sink } from "it-stream-types";
|
|
1
|
+
import type { Sink } from "it-stream-types";
|
|
2
2
|
import { Uint8ArrayList } from "uint8arraylist";
|
|
3
3
|
import { MixedProtocol } from "../types.js";
|
|
4
4
|
/**
|
|
@@ -7,5 +7,5 @@ import { MixedProtocol } from "../types.js";
|
|
|
7
7
|
* request ::= <encoding-dependent-header> | <encoded-payload>
|
|
8
8
|
* ```
|
|
9
9
|
*/
|
|
10
|
-
export declare function requestDecode(protocol: MixedProtocol): Sink<Uint8Array | Uint8ArrayList
|
|
10
|
+
export declare function requestDecode(protocol: MixedProtocol): Sink<AsyncIterable<Uint8Array | Uint8ArrayList>, Promise<Uint8Array>>;
|
|
11
11
|
//# sourceMappingURL=requestDecode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAuB;IAEvB,OAAO,KAAK,UAAU,iBAAiB,CAAC,MAAM;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,qBAAqB;YACrB,OAAO,UAAU,CAAC;SACnB;QAED,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAwC,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* <encoding-dependent-header> | <encoded-payload>
|
|
7
7
|
* ```
|
|
8
8
|
*/
|
|
9
|
-
export declare
|
|
9
|
+
export declare const writeSszSnappyPayload: (bytes: Uint8Array) => AsyncGenerator<Buffer>;
|
|
10
10
|
/**
|
|
11
11
|
* Buffered Snappy writer
|
|
12
12
|
*/
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import varint from "varint";
|
|
2
|
-
import {
|
|
3
|
-
import snappy from "@chainsafe/snappy-stream";
|
|
2
|
+
import { encodeSnappy } from "./snappyFrames/compress.js";
|
|
4
3
|
/**
|
|
5
4
|
* ssz_snappy encoding strategy writer.
|
|
6
5
|
* Yields byte chunks for encoded header and payload as defined in the spec:
|
|
@@ -8,9 +7,7 @@ import snappy from "@chainsafe/snappy-stream";
|
|
|
8
7
|
* <encoding-dependent-header> | <encoded-payload>
|
|
9
8
|
* ```
|
|
10
9
|
*/
|
|
11
|
-
export
|
|
12
|
-
yield* encodeSszSnappy(bodyData);
|
|
13
|
-
}
|
|
10
|
+
export const writeSszSnappyPayload = encodeSszSnappy;
|
|
14
11
|
/**
|
|
15
12
|
* Buffered Snappy writer
|
|
16
13
|
*/
|
|
@@ -19,17 +16,6 @@ export async function* encodeSszSnappy(bytes) {
|
|
|
19
16
|
yield Buffer.from(varint.encode(bytes.length));
|
|
20
17
|
// By first computing and writing the SSZ byte length, the SSZ encoder can then directly
|
|
21
18
|
// write the chunk contents to the stream. Snappy writer compresses frame by frame
|
|
22
|
-
|
|
23
|
-
* Use sync version (default) for compress as it is almost 2x faster than async
|
|
24
|
-
* one and most payloads are "1 chunk" and 100kb payloads (which would mostly be
|
|
25
|
-
* big bellatrix blocks with transactions) are just 2 chunks
|
|
26
|
-
*
|
|
27
|
-
* To use async version (for e.g. on big payloads) instantiate the stream with
|
|
28
|
-
* `createCompressStream({asyncCompress: true})`
|
|
29
|
-
*/
|
|
30
|
-
const stream = snappy.createCompressStream();
|
|
31
|
-
stream.write(bytes);
|
|
32
|
-
stream.end();
|
|
33
|
-
yield* source(stream);
|
|
19
|
+
yield* encodeSnappy(bytes);
|
|
34
20
|
}
|
|
35
21
|
//# sourceMappingURL=encode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/encode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/encode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAgE,CAAC;AAEtG;;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;IAClF,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare enum ChunkType {
|
|
3
|
+
IDENTIFIER = 255,
|
|
4
|
+
COMPRESSED = 0,
|
|
5
|
+
UNCOMPRESSED = 1,
|
|
6
|
+
PADDING = 254
|
|
7
|
+
}
|
|
8
|
+
export declare const IDENTIFIER: Buffer;
|
|
9
|
+
export declare const IDENTIFIER_FRAME: Buffer;
|
|
10
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var ChunkType;
|
|
2
|
+
(function (ChunkType) {
|
|
3
|
+
ChunkType[ChunkType["IDENTIFIER"] = 255] = "IDENTIFIER";
|
|
4
|
+
ChunkType[ChunkType["COMPRESSED"] = 0] = "COMPRESSED";
|
|
5
|
+
ChunkType[ChunkType["UNCOMPRESSED"] = 1] = "UNCOMPRESSED";
|
|
6
|
+
ChunkType[ChunkType["PADDING"] = 254] = "PADDING";
|
|
7
|
+
})(ChunkType || (ChunkType = {}));
|
|
8
|
+
export const IDENTIFIER = Buffer.from([0x73, 0x4e, 0x61, 0x50, 0x70, 0x59]);
|
|
9
|
+
export const IDENTIFIER_FRAME = Buffer.from([0xff, 0x06, 0x00, 0x00, 0x73, 0x4e, 0x61, 0x50, 0x70, 0x59]);
|
|
10
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/encodingStrategies/sszSnappy/snappyFrames/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,uDAAiB,CAAA;IACjB,qDAAiB,CAAA;IACjB,yDAAmB,CAAA;IACnB,iDAAc,CAAA;AAChB,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import snappy from "snappy";
|
|
2
|
+
import crc32c from "@chainsafe/fast-crc32c";
|
|
3
|
+
import { ChunkType, IDENTIFIER_FRAME } from "./common.js";
|
|
4
|
+
// The logic in this file is largely copied (in simplified form) from https://github.com/ChainSafe/node-snappy-stream/
|
|
5
|
+
/**
|
|
6
|
+
* As per the snappy framing format for streams, the size of any uncompressed chunk can be
|
|
7
|
+
* no longer than 65536 bytes.
|
|
8
|
+
*
|
|
9
|
+
* From: https://github.com/google/snappy/blob/main/framing_format.txt#L90:L92
|
|
10
|
+
*/
|
|
11
|
+
const UNCOMPRESSED_CHUNK_SIZE = 65536;
|
|
12
|
+
function checksum(value) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
const x = crc32c.calculate(value);
|
|
15
|
+
const result = (_b = (_a = Buffer.allocUnsafe) === null || _a === void 0 ? void 0 : _a.call(Buffer, 4)) !== null && _b !== void 0 ? _b : Buffer.alloc(4);
|
|
16
|
+
// As defined in section 3 of https://github.com/google/snappy/blob/master/framing_format.txt
|
|
17
|
+
// And other implementations for reference:
|
|
18
|
+
// Go: https://github.com/golang/snappy/blob/2e65f85255dbc3072edf28d6b5b8efc472979f5a/snappy.go#L97
|
|
19
|
+
// Python: https://github.com/andrix/python-snappy/blob/602e9c10d743f71bef0bac5e4c4dffa17340d7b3/snappy/snappy.py#L70
|
|
20
|
+
// Mask the right hand to (32 - 17) = 15 bits -> 0x7fff, to keep correct 32 bit values.
|
|
21
|
+
// Shift the left hand with >>> for correct 32 bit intermediate result.
|
|
22
|
+
// Then final >>> 0 for 32 bits output
|
|
23
|
+
result.writeUInt32LE((((x >>> 15) | ((x & 0x7fff) << 17)) + 0xa282ead8) >>> 0, 0);
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
export async function* encodeSnappy(bytes) {
|
|
27
|
+
yield IDENTIFIER_FRAME;
|
|
28
|
+
for (let i = 0; i < bytes.length; i += UNCOMPRESSED_CHUNK_SIZE) {
|
|
29
|
+
const chunk = bytes.subarray(i, i + UNCOMPRESSED_CHUNK_SIZE);
|
|
30
|
+
const compressed = snappy.compressSync(chunk);
|
|
31
|
+
if (compressed.length < chunk.length) {
|
|
32
|
+
const size = compressed.length + 4;
|
|
33
|
+
yield Buffer.concat([
|
|
34
|
+
Buffer.from([ChunkType.COMPRESSED, size, size >> 8, size >> 16]),
|
|
35
|
+
checksum(chunk),
|
|
36
|
+
compressed,
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
const size = chunk.length + 4;
|
|
41
|
+
yield Buffer.concat([
|
|
42
|
+
//
|
|
43
|
+
Buffer.from([ChunkType.UNCOMPRESSED, size, size >> 8, size >> 16]),
|
|
44
|
+
checksum(chunk),
|
|
45
|
+
chunk,
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=compress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../../src/encodingStrategies/sszSnappy/snappyFrames/compress.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAExD,sHAAsH;AAEtH;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC,SAAS,QAAQ,CAAC,KAAa;;IAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAA,MAAA,MAAM,CAAC,WAAW,uDAAG,CAAC,CAAC,mCAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1D,6FAA6F;IAC7F,2CAA2C;IAC3C,mGAAmG;IACnG,qHAAqH;IACrH,uFAAuF;IACvF,uEAAuE;IACvE,sCAAsC;IACtC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAElF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,KAAa;IAC/C,MAAM,gBAAgB,CAAC;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;YACpC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,CAAC,MAAM,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChE,QAAQ,CAAC,KAAK,CAAC;gBACf,UAAU;aACX,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,MAAM,MAAM,CAAC,MAAM,CAAC;gBAClB,EAAE;gBACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClE,QAAQ,CAAC,KAAK,CAAC;gBACf,KAAK;aACN,CAAC,CAAC;SACJ;KACF;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { uncompress } from "snappyjs";
|
|
2
2
|
import { Uint8ArrayList } from "uint8arraylist";
|
|
3
|
-
|
|
3
|
+
import { ChunkType, IDENTIFIER } from "./common.js";
|
|
4
4
|
export class SnappyFramesUncompress {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.buffer = new Uint8ArrayList();
|
|
@@ -58,13 +58,6 @@ export class SnappyFramesUncompress {
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
var ChunkType;
|
|
62
|
-
(function (ChunkType) {
|
|
63
|
-
ChunkType[ChunkType["IDENTIFIER"] = 255] = "IDENTIFIER";
|
|
64
|
-
ChunkType[ChunkType["COMPRESSED"] = 0] = "COMPRESSED";
|
|
65
|
-
ChunkType[ChunkType["UNCOMPRESSED"] = 1] = "UNCOMPRESSED";
|
|
66
|
-
ChunkType[ChunkType["PADDING"] = 254] = "PADDING";
|
|
67
|
-
})(ChunkType || (ChunkType = {}));
|
|
68
61
|
function getFrameSize(buffer, offset) {
|
|
69
62
|
return buffer.get(offset) + (buffer.get(offset + 1) << 8) + (buffer.get(offset + 2) << 16);
|
|
70
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uncompress.js","sourceRoot":"","sources":["../../../../src/encodingStrategies/sszSnappy/snappyFrames/uncompress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"uncompress.js","sourceRoot":"","sources":["../../../../src/encodingStrategies/sszSnappy/snappyFrames/uncompress.ts"],"names":[],"mappings":"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"}
|
package/lib/request/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PeerId } from "@libp2p/interface-peer-id";
|
|
2
|
-
import { Libp2p } from "libp2p";
|
|
2
|
+
import type { Libp2p } from "libp2p";
|
|
3
3
|
import { Logger } from "@lodestar/utils";
|
|
4
4
|
import { MixedProtocol, ResponseIncoming } from "../types.js";
|
|
5
5
|
import { Metrics } from "../metrics.js";
|
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.
|
|
14
|
+
"version": "1.10.0-dev.03c36e28f7",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -54,24 +54,26 @@
|
|
|
54
54
|
"check-readme": "typescript-docs-verifier"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@chainsafe/
|
|
58
|
-
"@libp2p/interface-connection": "^
|
|
59
|
-
"@libp2p/interface-peer-id": "^2.0.
|
|
60
|
-
"@lodestar/config": "
|
|
61
|
-
"@lodestar/params": "
|
|
62
|
-
"@lodestar/utils": "
|
|
63
|
-
"it-all": "^3.0.
|
|
57
|
+
"@chainsafe/fast-crc32c": "^4.1.1",
|
|
58
|
+
"@libp2p/interface-connection": "^5.1.0",
|
|
59
|
+
"@libp2p/interface-peer-id": "^2.0.2",
|
|
60
|
+
"@lodestar/config": "1.10.0-dev.03c36e28f7",
|
|
61
|
+
"@lodestar/params": "1.10.0-dev.03c36e28f7",
|
|
62
|
+
"@lodestar/utils": "1.10.0-dev.03c36e28f7",
|
|
63
|
+
"it-all": "^3.0.2",
|
|
64
|
+
"it-pipe": "^3.0.1",
|
|
65
|
+
"snappy": "^7.2.2",
|
|
64
66
|
"snappyjs": "^0.7.0",
|
|
65
|
-
"stream-to-it": "^0.2.4",
|
|
66
67
|
"uint8arraylist": "^2.4.3",
|
|
67
68
|
"varint": "^6.0.0"
|
|
68
69
|
},
|
|
69
70
|
"devDependencies": {
|
|
70
|
-
"@lodestar/logger": "
|
|
71
|
-
"@lodestar/types": "
|
|
71
|
+
"@lodestar/logger": "1.10.0-dev.03c36e28f7",
|
|
72
|
+
"@lodestar/types": "1.10.0-dev.03c36e28f7",
|
|
73
|
+
"libp2p": "0.45.9"
|
|
72
74
|
},
|
|
73
75
|
"peerDependencies": {
|
|
74
|
-
"libp2p": "~0.
|
|
76
|
+
"libp2p": "~0.45.0"
|
|
75
77
|
},
|
|
76
78
|
"keywords": [
|
|
77
79
|
"ethereum",
|
|
@@ -81,5 +83,5 @@
|
|
|
81
83
|
"reqresp",
|
|
82
84
|
"blockchain"
|
|
83
85
|
],
|
|
84
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "8cecc8797116382ca4fb631eefb2fc09b72f3bee"
|
|
85
87
|
}
|