@waku/core 0.0.16 → 0.0.18
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/CHANGELOG.md +48 -0
- package/bundle/{browser-2f1afe46.js → browser-bde977a3.js} +12 -9
- package/bundle/index.js +4417 -34898
- package/bundle/lib/base_protocol.js +4 -1
- package/bundle/lib/message/version_0.js +2 -3
- package/bundle/{peer_exchange-1229c8b0.js → version_0-c6b47311.js} +172 -45
- package/dist/index.d.ts +1 -3
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/base_protocol.js +3 -0
- package/dist/lib/base_protocol.js.map +1 -1
- package/dist/lib/connection_manager.d.ts +1 -0
- package/dist/lib/connection_manager.js +33 -25
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/filter_rpc.js +1 -0
- package/dist/lib/filter/filter_rpc.js.map +1 -1
- package/dist/lib/filter/index.js +11 -4
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/keep_alive_manager.d.ts +1 -0
- package/dist/lib/keep_alive_manager.js +5 -1
- package/dist/lib/keep_alive_manager.js.map +1 -1
- package/dist/lib/light_push/index.d.ts +1 -1
- package/dist/lib/light_push/index.js +28 -8
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/light_push/push_rpc.js +1 -0
- package/dist/lib/light_push/push_rpc.js.map +1 -1
- package/dist/lib/message/index.d.ts +0 -1
- package/dist/lib/message/index.js +0 -1
- package/dist/lib/message/index.js.map +1 -1
- package/dist/lib/message/version_0.d.ts +1 -2
- package/dist/lib/message/version_0.js +12 -0
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/store/history_rpc.js +1 -0
- package/dist/lib/store/history_rpc.js.map +1 -1
- package/dist/lib/store/index.js +3 -1
- package/dist/lib/store/index.js.map +1 -1
- package/dist/lib/waku.d.ts +2 -2
- package/dist/lib/waku.js +14 -2
- package/dist/lib/waku.js.map +1 -1
- package/package.json +14 -23
- package/src/index.ts +1 -9
- package/src/lib/connection_manager.ts +13 -4
- package/src/lib/filter/index.ts +14 -5
- package/src/lib/keep_alive_manager.ts +1 -2
- package/src/lib/light_push/index.ts +28 -11
- package/src/lib/message/index.ts +0 -1
- package/src/lib/message/version_0.ts +11 -3
- package/src/lib/store/index.ts +2 -2
- package/src/lib/waku.ts +13 -4
- package/bundle/lib/message/topic_only_message.js +0 -3
- package/bundle/topic_only_message-e8406994.js +0 -43
- package/bundle/version_0-e9a6cfb0.js +0 -143
- package/dist/lib/group_by.d.ts +0 -3
- package/dist/lib/group_by.js +0 -13
- package/dist/lib/group_by.js.map +0 -1
- package/dist/lib/message/topic_only_message.d.ts +0 -18
- package/dist/lib/message/topic_only_message.js +0 -35
- package/dist/lib/message/topic_only_message.js.map +0 -1
- package/dist/lib/relay/constants.d.ts +0 -63
- package/dist/lib/relay/constants.js +0 -64
- package/dist/lib/relay/constants.js.map +0 -1
- package/dist/lib/relay/index.d.ts +0 -11
- package/dist/lib/relay/index.js +0 -175
- package/dist/lib/relay/index.js.map +0 -1
- package/dist/lib/relay/message_validator.d.ts +0 -4
- package/dist/lib/relay/message_validator.js +0 -25
- package/dist/lib/relay/message_validator.js.map +0 -1
- package/src/lib/group_by.ts +0 -14
- package/src/lib/message/topic_only_message.ts +0 -51
- package/src/lib/relay/constants.ts +0 -74
- package/src/lib/relay/index.ts +0 -282
- package/src/lib/relay/message_validator.ts +0 -35
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { Libp2p } from "@libp2p/interface-libp2p";
|
2
|
-
import
|
2
|
+
import { ILightPush, ProtocolCreateOptions } from "@waku/interfaces";
|
3
3
|
import { PushResponse } from "@waku/proto";
|
4
4
|
export declare const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
|
5
5
|
export { PushResponse };
|
@@ -1,4 +1,6 @@
|
|
1
|
+
import { SendError, } from "@waku/interfaces";
|
1
2
|
import { PushResponse } from "@waku/proto";
|
3
|
+
import { isSizeValid } from "@waku/utils";
|
2
4
|
import debug from "debug";
|
3
5
|
import all from "it-all";
|
4
6
|
import * as lp from "it-length-prefixed";
|
@@ -14,6 +16,8 @@ export { PushResponse };
|
|
14
16
|
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
15
17
|
*/
|
16
18
|
class LightPush extends BaseProtocol {
|
19
|
+
libp2p;
|
20
|
+
options;
|
17
21
|
constructor(libp2p, options) {
|
18
22
|
super(LightPushCodec, libp2p.peerStore, libp2p.getConnections.bind(libp2p));
|
19
23
|
this.libp2p = libp2p;
|
@@ -24,36 +28,52 @@ class LightPush extends BaseProtocol {
|
|
24
28
|
const peer = await this.getPeer(opts?.peerId);
|
25
29
|
const stream = await this.newStream(peer);
|
26
30
|
const recipients = [];
|
31
|
+
let error = undefined;
|
27
32
|
try {
|
33
|
+
if (!isSizeValid(message.payload)) {
|
34
|
+
log("Failed to send waku light push: message is bigger that 1MB");
|
35
|
+
return {
|
36
|
+
recipients,
|
37
|
+
error: SendError.SIZE_TOO_BIG,
|
38
|
+
};
|
39
|
+
}
|
28
40
|
const protoMessage = await encoder.toProtoObj(message);
|
29
41
|
if (!protoMessage) {
|
30
42
|
log("Failed to encode to protoMessage, aborting push");
|
31
|
-
return {
|
43
|
+
return {
|
44
|
+
recipients,
|
45
|
+
error: SendError.ENCODE_FAILED,
|
46
|
+
};
|
32
47
|
}
|
33
48
|
const query = PushRpc.createRequest(protoMessage, pubSubTopic);
|
34
|
-
const res = await pipe([query.encode()], lp.encode
|
49
|
+
const res = await pipe([query.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
35
50
|
try {
|
36
51
|
const bytes = new Uint8ArrayList();
|
37
52
|
res.forEach((chunk) => {
|
38
53
|
bytes.append(chunk);
|
39
54
|
});
|
40
55
|
const response = PushRpc.decode(bytes).response;
|
41
|
-
if (
|
42
|
-
log("No response in PushRPC");
|
43
|
-
return { recipients };
|
44
|
-
}
|
45
|
-
if (response.isSuccess) {
|
56
|
+
if (response?.isSuccess) {
|
46
57
|
recipients.push(peer.id);
|
47
58
|
}
|
59
|
+
else {
|
60
|
+
log("No response in PushRPC");
|
61
|
+
error = SendError.NO_RPC_RESPONSE;
|
62
|
+
}
|
48
63
|
}
|
49
64
|
catch (err) {
|
50
65
|
log("Failed to decode push reply", err);
|
66
|
+
error = SendError.DECODE_FAILED;
|
51
67
|
}
|
52
68
|
}
|
53
69
|
catch (err) {
|
54
70
|
log("Failed to send waku light push request", err);
|
71
|
+
error = SendError.GENERIC_FAIL;
|
55
72
|
}
|
56
|
-
return {
|
73
|
+
return {
|
74
|
+
error,
|
75
|
+
recipients,
|
76
|
+
};
|
57
77
|
}
|
58
78
|
}
|
59
79
|
export function wakuLightPush(init = {}) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"push_rpc.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,OAAO;
|
1
|
+
{"version":3,"file":"push_rpc.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,OAAO;IACQ;IAA1B,YAA0B,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IAElD,MAAM,CAAC,aAAa,CAClB,OAA0B,EAC1B,WAAmB;QAEnB,OAAO,IAAI,OAAO,CAAC;YACjB,SAAS,EAAE,IAAI,EAAE;YACjB,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,WAAW;aACzB;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAqB;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import { IMetaSetter } from "@waku/interfaces";
|
2
|
-
import type { EncoderOptions, IDecodedMessage, IDecoder, IEncoder, IMessage, IProtoMessage, IRateLimitProof } from "@waku/interfaces";
|
1
|
+
import type { EncoderOptions, IDecodedMessage, IDecoder, IEncoder, IMessage, IMetaSetter, IProtoMessage, IRateLimitProof } from "@waku/interfaces";
|
3
2
|
import { proto_message as proto } from "@waku/proto";
|
4
3
|
export declare const Version = 0;
|
5
4
|
export { proto };
|
@@ -5,6 +5,8 @@ const OneMillion = BigInt(1000000);
|
|
5
5
|
export const Version = 0;
|
6
6
|
export { proto };
|
7
7
|
export class DecodedMessage {
|
8
|
+
pubSubTopic;
|
9
|
+
proto;
|
8
10
|
constructor(pubSubTopic, proto) {
|
9
11
|
this.pubSubTopic = pubSubTopic;
|
10
12
|
this.proto = proto;
|
@@ -49,10 +51,16 @@ export class DecodedMessage {
|
|
49
51
|
}
|
50
52
|
}
|
51
53
|
export class Encoder {
|
54
|
+
contentTopic;
|
55
|
+
ephemeral;
|
56
|
+
metaSetter;
|
52
57
|
constructor(contentTopic, ephemeral = false, metaSetter) {
|
53
58
|
this.contentTopic = contentTopic;
|
54
59
|
this.ephemeral = ephemeral;
|
55
60
|
this.metaSetter = metaSetter;
|
61
|
+
if (!contentTopic || contentTopic === "") {
|
62
|
+
throw new Error("Content topic must be specified");
|
63
|
+
}
|
56
64
|
}
|
57
65
|
async toWire(message) {
|
58
66
|
return proto.WakuMessage.encode(await this.toProtoObj(message));
|
@@ -88,8 +96,12 @@ export function createEncoder({ contentTopic, ephemeral, metaSetter, }) {
|
|
88
96
|
return new Encoder(contentTopic, ephemeral, metaSetter);
|
89
97
|
}
|
90
98
|
export class Decoder {
|
99
|
+
contentTopic;
|
91
100
|
constructor(contentTopic) {
|
92
101
|
this.contentTopic = contentTopic;
|
102
|
+
if (!contentTopic || contentTopic === "") {
|
103
|
+
throw new Error("Content topic must be specified");
|
104
|
+
}
|
93
105
|
}
|
94
106
|
fromWireToProtoObj(bytes) {
|
95
107
|
const protoMessage = proto.WakuMessage.decode(bytes);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAS,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,OAAO,cAAc;
|
1
|
+
{"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAS,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,OAAO,cAAc;IACN;IAA+B;IAAlD,YAAmB,WAAmB,EAAY,KAAwB;QAAvD,gBAAW,GAAX,WAAW,CAAQ;QAAY,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAE9E,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IACjC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,sEAAsE;QACtE,2CAA2C;QAC3C,IAAI;YACF,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxB,0CAA0C;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;gBACpD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;aACpC;YACD,OAAO;SACR;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACT,+BAA+B;QAC/B,8DAA8D;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IAET;IACA;IACA;IAHT,YACS,YAAoB,EACpB,YAAqB,KAAK,EAC1B,UAAwB;QAFxB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAiB;QAC1B,eAAU,GAAV,UAAU,CAAc;QAE/B,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAiB;QAC5B,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAiB;QAChC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;QAElD,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU;YACnD,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC3C,OAAO,EAAE,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC;SAClC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,YAAY,EACZ,SAAS,EACT,UAAU,GACK;IACf,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,OAAO;IACC;IAAnB,YAAmB,YAAoB;QAApB,iBAAY,GAAZ,YAAY,CAAQ;QACrC,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;IACH,CAAC;IAED,kBAAkB,CAAC,KAAiB;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,SAAS;YAC1C,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,SAAS;YAC9C,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,SAAS;YACpC,cAAc,EAAE,YAAY,CAAC,cAAc,IAAI,SAAS;YACxD,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,KAAK;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,KAAoB;QAEpB,+BAA+B;QAC/B,8DAA8D;QAC9D,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE;YAClC,GAAG,CACD,sDAAsD,EACtD,OAAO,EACP,WAAW,EACX,KAAK,CAAC,OAAO,CACd,CAAC;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,YAAoB;IAChD,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"history_rpc.js","sourceRoot":"","sources":["../../../src/lib/store/history_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAS,CAAC,CAAC;AAErC,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAYD,MAAM,OAAO,UAAU;
|
1
|
+
{"version":3,"file":"history_rpc.js","sourceRoot":"","sources":["../../../src/lib/store/history_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAS,CAAC,CAAC;AAErC,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAYD,MAAM,OAAO,UAAU;IACe;IAApC,YAAoC,KAAuB;QAAvB,UAAK,GAAL,KAAK,CAAkB;IAAG,CAAC;IAE/D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAc;QAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/D,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEzD,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS;SACU,CAAC;QAEtB,IAAI,SAAS,EAAE,OAAO,CAAC;QACvB,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,0CAA0C;YAC1C,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;SAC7D;QAED,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,0CAA0C;YAC1C,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;SACzD;QACD,OAAO,IAAI,UAAU,CAAC;YACpB,SAAS,EAAE,IAAI,EAAE;YACjB,KAAK,EAAE;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,cAAc;gBACd,UAAU;gBACV,SAAS;gBACT,OAAO;aACR;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAqB;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,SAAS,gBAAgB,CACvB,aAA4B;IAE5B,QAAQ,aAAa,EAAE;QACrB,KAAK,aAAa,CAAC,QAAQ;YACzB,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC7C,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;QAC5C;YACE,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;KAC9C;AACH,CAAC"}
|
package/dist/lib/store/index.js
CHANGED
@@ -22,6 +22,8 @@ export { PageDirection };
|
|
22
22
|
* The Waku Store protocol can be used to retrieved historical messages.
|
23
23
|
*/
|
24
24
|
class Store extends BaseProtocol {
|
25
|
+
libp2p;
|
26
|
+
options;
|
25
27
|
constructor(libp2p, options) {
|
26
28
|
super(StoreCodec, libp2p.peerStore, libp2p.getConnections.bind(libp2p));
|
27
29
|
this.libp2p = libp2p;
|
@@ -153,7 +155,7 @@ async function* paginate(streamFactory, queryOpts, decoders, cursor) {
|
|
153
155
|
const historyRpcQuery = HistoryRpc.createQuery(queryOpts);
|
154
156
|
log("Querying store peer", `for (${queryOpts.pubSubTopic})`, queryOpts.contentTopics);
|
155
157
|
const stream = await streamFactory();
|
156
|
-
const res = await pipe([historyRpcQuery.encode()], lp.encode
|
158
|
+
const res = await pipe([historyRpcQuery.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
157
159
|
const bytes = new Uint8ArrayList();
|
158
160
|
res.forEach((chunk) => {
|
159
161
|
bytes.append(chunk);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQ9C,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAU,MAAM,kBAAkB,CAAC;AAErE,IAAO,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC;AAEzD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,UAAU,GAAG,6BAA6B,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,CAAC;AAyCzB;;;;GAIG;AACH,MAAM,KAAM,SAAQ,YAAY;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/waku.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { Stream } from "@libp2p/interface-connection";
|
2
2
|
import type { Libp2p } from "@libp2p/interface-libp2p";
|
3
3
|
import type { PeerId } from "@libp2p/interface-peer-id";
|
4
|
-
import type {
|
4
|
+
import type { MultiaddrInput } from "@multiformats/multiaddr";
|
5
5
|
import type { IFilter, ILightPush, IRelay, IStore, Waku } from "@waku/interfaces";
|
6
6
|
import { Protocols } from "@waku/interfaces";
|
7
7
|
import { ConnectionManager } from "./connection_manager.js";
|
@@ -43,7 +43,7 @@ export declare class WakuNode implements Waku {
|
|
43
43
|
* @param peer The peer to dial
|
44
44
|
* @param protocols Waku protocols we expect from the peer; Defaults to mounted protocols
|
45
45
|
*/
|
46
|
-
dial(peer: PeerId |
|
46
|
+
dial(peer: PeerId | MultiaddrInput, protocols?: Protocols[]): Promise<Stream>;
|
47
47
|
start(): Promise<void>;
|
48
48
|
stop(): Promise<void>;
|
49
49
|
isStarted(): boolean;
|
package/dist/lib/waku.js
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
import { isPeerId } from "@libp2p/interface-peer-id";
|
2
|
+
import { multiaddr } from "@multiformats/multiaddr";
|
1
3
|
import { Protocols } from "@waku/interfaces";
|
2
4
|
import debug from "debug";
|
3
5
|
import { ConnectionManager } from "./connection_manager.js";
|
@@ -6,6 +8,12 @@ export const DefaultRelayKeepAliveValueSecs = 5 * 60;
|
|
6
8
|
export const DefaultUserAgent = "js-waku";
|
7
9
|
const log = debug("waku:waku");
|
8
10
|
export class WakuNode {
|
11
|
+
libp2p;
|
12
|
+
relay;
|
13
|
+
store;
|
14
|
+
filter;
|
15
|
+
lightPush;
|
16
|
+
connectionManager;
|
9
17
|
constructor(options, libp2p, store, lightPush, filter, relay) {
|
10
18
|
this.libp2p = libp2p;
|
11
19
|
if (store) {
|
@@ -37,6 +45,7 @@ export class WakuNode {
|
|
37
45
|
*/
|
38
46
|
async dial(peer, protocols) {
|
39
47
|
const _protocols = protocols ?? [];
|
48
|
+
const peerId = mapToPeerIdOrMultiaddr(peer);
|
40
49
|
if (typeof protocols === "undefined") {
|
41
50
|
this.relay && _protocols.push(Protocols.Relay);
|
42
51
|
this.store && _protocols.push(Protocols.Store);
|
@@ -76,8 +85,8 @@ export class WakuNode {
|
|
76
85
|
log("Filter codec not included in dial codec: protocol not mounted locally");
|
77
86
|
}
|
78
87
|
}
|
79
|
-
log(`Dialing to ${
|
80
|
-
return this.libp2p.dialProtocol(
|
88
|
+
log(`Dialing to ${peerId.toString()} with protocols ${_protocols}`);
|
89
|
+
return this.libp2p.dialProtocol(peerId, codecs);
|
81
90
|
}
|
82
91
|
async start() {
|
83
92
|
await this.libp2p.start();
|
@@ -104,4 +113,7 @@ export class WakuNode {
|
|
104
113
|
return localMultiaddr + "/p2p/" + this.libp2p.peerId.toString();
|
105
114
|
}
|
106
115
|
}
|
116
|
+
function mapToPeerIdOrMultiaddr(peerId) {
|
117
|
+
return isPeerId(peerId) ? peerId : multiaddr(peerId);
|
118
|
+
}
|
107
119
|
//# sourceMappingURL=waku.js.map
|
package/dist/lib/waku.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"waku.js","sourceRoot":"","sources":["../../src/lib/waku.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"waku.js","sourceRoot":"","sources":["../../src/lib/waku.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@waku/core",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.18",
|
4
4
|
"description": "TypeScript implementation of the Waku v2 protocol",
|
5
5
|
"types": "./dist/index.d.ts",
|
6
6
|
"module": "./dist/index.js",
|
@@ -17,10 +17,6 @@
|
|
17
17
|
"types": "./dist/lib/message/version_0.d.ts",
|
18
18
|
"import": "./dist/lib/message/version_0.js"
|
19
19
|
},
|
20
|
-
"./lib/message/topic_only_message": {
|
21
|
-
"types": "./dist/lib/message/topic_only_message.d.ts",
|
22
|
-
"import": "./dist/lib/message/topic_only_message.js"
|
23
|
-
},
|
24
20
|
"./lib/base_protocol": {
|
25
21
|
"types": "./dist/lib/base_protocol.d.ts",
|
26
22
|
"import": "./dist/lib/base_protocol.js"
|
@@ -30,6 +26,9 @@
|
|
30
26
|
"*": {
|
31
27
|
"lib/*": [
|
32
28
|
"dist/lib/*"
|
29
|
+
],
|
30
|
+
"constants/*": [
|
31
|
+
"dist/constants/*"
|
33
32
|
]
|
34
33
|
}
|
35
34
|
},
|
@@ -56,17 +55,11 @@
|
|
56
55
|
"build:esm": "tsc",
|
57
56
|
"build:bundle": "rollup --config rollup.config.js",
|
58
57
|
"fix": "run-s fix:*",
|
59
|
-
"fix:prettier": "prettier . --write",
|
60
58
|
"fix:lint": "eslint src *.js --fix",
|
61
59
|
"pretest": "run-s pretest:*",
|
62
|
-
"pretest:1-init-git-submodules": "[ -f '../../nwaku/build/wakunode2' ] || git submodule update --init --recursive",
|
63
|
-
"pretest:2-build-nwaku": "[ -f '../../nwaku/build/wakunode2' ] || run-s nwaku:build",
|
64
|
-
"nwaku:build": "(PROC=$(nproc --all 2>/dev/null || echo 2); cd ../../nwaku; make -j$PROC update; NIMFLAGS=\"-d:chronicles_colors=off -d:chronicles_sinks=textlines -d:chronicles_log_level=TRACE\" make -j$PROC wakunode2)",
|
65
|
-
"nwaku:force-build": "(cd ../../nwaku && rm -rf ./build/ ./vendor) && run-s nwaku:build",
|
66
60
|
"check": "run-s check:*",
|
67
61
|
"check:tsc": "tsc -p tsconfig.dev.json",
|
68
62
|
"check:lint": "eslint src *.js",
|
69
|
-
"check:prettier": "prettier . --list-different",
|
70
63
|
"check:spelling": "cspell \"{README.md,src/**/*.ts}\"",
|
71
64
|
"test": "run-s test:*",
|
72
65
|
"test:node": "TS_NODE_PROJECT=./tsconfig.dev.json mocha",
|
@@ -80,14 +73,13 @@
|
|
80
73
|
"node": ">=16"
|
81
74
|
},
|
82
75
|
"dependencies": {
|
83
|
-
"@chainsafe/libp2p-gossipsub": "^6.1.0",
|
84
76
|
"@noble/hashes": "^1.3.0",
|
85
|
-
"@waku/interfaces": "0.0.
|
86
|
-
"@waku/proto": "
|
87
|
-
"@waku/utils": "0.0.
|
77
|
+
"@waku/interfaces": "0.0.13",
|
78
|
+
"@waku/proto": "*",
|
79
|
+
"@waku/utils": "0.0.6",
|
88
80
|
"debug": "^4.3.4",
|
89
|
-
"it-all": "^
|
90
|
-
"it-length-prefixed": "^
|
81
|
+
"it-all": "^3.0.1",
|
82
|
+
"it-length-prefixed": "^9.0.1",
|
91
83
|
"it-pipe": "^2.0.5",
|
92
84
|
"p-event": "^5.0.1",
|
93
85
|
"uint8arraylist": "^2.4.3",
|
@@ -98,12 +90,11 @@
|
|
98
90
|
"@libp2p/interface-libp2p": "^1.1.2",
|
99
91
|
"@libp2p/interface-peer-id": "^2.0.1",
|
100
92
|
"@libp2p/interface-peer-store": "^1.2.8",
|
101
|
-
"@libp2p/interface-pubsub": "^3.0.6",
|
102
93
|
"@libp2p/interface-registrar": "^2.0.8",
|
103
94
|
"@multiformats/multiaddr": "^12.0.0",
|
104
95
|
"@rollup/plugin-commonjs": "^24.0.1",
|
105
96
|
"@rollup/plugin-json": "^6.0.0",
|
106
|
-
"@rollup/plugin-node-resolve": "^15.0.
|
97
|
+
"@rollup/plugin-node-resolve": "^15.0.2",
|
107
98
|
"@types/chai": "^4.3.4",
|
108
99
|
"@types/debug": "^4.1.7",
|
109
100
|
"@types/mocha": "^10.0.1",
|
@@ -119,7 +110,7 @@
|
|
119
110
|
"eslint-plugin-functional": "^5.0.4",
|
120
111
|
"eslint-plugin-import": "^2.27.5",
|
121
112
|
"eslint-plugin-prettier": "^4.2.1",
|
122
|
-
"fast-check": "^3.
|
113
|
+
"fast-check": "^3.8.1",
|
123
114
|
"ignore-loader": "^0.1.2",
|
124
115
|
"isomorphic-fetch": "^3.0.0",
|
125
116
|
"karma": "^6.4.1",
|
@@ -128,13 +119,13 @@
|
|
128
119
|
"karma-webpack": "^5.0.0",
|
129
120
|
"mocha": "^10.2.0",
|
130
121
|
"npm-run-all": "^4.1.5",
|
131
|
-
"prettier": "^2.8.
|
122
|
+
"prettier": "^2.8.8",
|
132
123
|
"process": "^0.11.10",
|
133
124
|
"puppeteer": "^19.8.2",
|
134
|
-
"rollup": "^3.
|
125
|
+
"rollup": "^3.21.3",
|
135
126
|
"ts-loader": "^9.4.2",
|
136
127
|
"ts-node": "^10.9.1",
|
137
|
-
"typescript": "^
|
128
|
+
"typescript": "^5.0.4"
|
138
129
|
},
|
139
130
|
"peerDependencies": {
|
140
131
|
"@multiformats/multiaddr": "^12.0.0",
|
package/src/index.ts
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
export { DefaultPubSubTopic } from "./lib/constants.js";
|
2
1
|
export { DefaultUserAgent } from "./lib/waku.js";
|
3
|
-
|
2
|
+
export { DefaultPubSubTopic } from "./lib/constants.js";
|
4
3
|
export { createEncoder, createDecoder } from "./lib/message/version_0.js";
|
5
4
|
export type {
|
6
5
|
Encoder,
|
@@ -18,13 +17,6 @@ export { wakuFilter } from "./lib/filter/index.js";
|
|
18
17
|
export * as waku_light_push from "./lib/light_push/index.js";
|
19
18
|
export { wakuLightPush, LightPushCodec } from "./lib/light_push/index.js";
|
20
19
|
|
21
|
-
export * as waku_relay from "./lib/relay/index.js";
|
22
|
-
export {
|
23
|
-
wakuRelay,
|
24
|
-
RelayCreateOptions,
|
25
|
-
wakuGossipSub,
|
26
|
-
} from "./lib/relay/index.js";
|
27
|
-
|
28
20
|
export * as waku_store from "./lib/store/index.js";
|
29
21
|
export {
|
30
22
|
PageDirection,
|
@@ -19,6 +19,7 @@ export class ConnectionManager {
|
|
19
19
|
private options: ConnectionManagerOptions;
|
20
20
|
private libp2pComponents: Libp2p;
|
21
21
|
private dialAttemptsForPeer: Map<string, number> = new Map();
|
22
|
+
private dialErrorsForPeer: Map<string, any> = new Map();
|
22
23
|
|
23
24
|
public static create(
|
24
25
|
peerId: string,
|
@@ -102,9 +103,11 @@ export class ConnectionManager {
|
|
102
103
|
|
103
104
|
this.dialAttemptsForPeer.delete(peerId.toString());
|
104
105
|
return;
|
105
|
-
} catch (
|
106
|
-
|
107
|
-
|
106
|
+
} catch (e) {
|
107
|
+
const error = e as AggregateError;
|
108
|
+
this.dialErrorsForPeer.set(peerId.toString(), error);
|
109
|
+
log(`Error dialing peer ${peerId.toString()} - ${error.errors}`);
|
110
|
+
|
108
111
|
dialAttempt = this.dialAttemptsForPeer.get(peerId.toString()) ?? 1;
|
109
112
|
this.dialAttemptsForPeer.set(peerId.toString(), dialAttempt + 1);
|
110
113
|
|
@@ -115,7 +118,13 @@ export class ConnectionManager {
|
|
115
118
|
}
|
116
119
|
|
117
120
|
try {
|
118
|
-
log(
|
121
|
+
log(
|
122
|
+
`Deleting undialable peer ${peerId.toString()} from peer store. Error: ${JSON.stringify(
|
123
|
+
this.dialErrorsForPeer.get(peerId.toString()).errors[0]
|
124
|
+
)}
|
125
|
+
}`
|
126
|
+
);
|
127
|
+
this.dialErrorsForPeer.delete(peerId.toString());
|
119
128
|
return await this.libp2pComponents.peerStore.delete(peerId);
|
120
129
|
} catch (error) {
|
121
130
|
throw `Error deleting undialable peer ${peerId.toString()} from peer store - ${error}`;
|
package/src/lib/filter/index.ts
CHANGED
@@ -4,6 +4,7 @@ import type { IncomingStreamData } from "@libp2p/interface-registrar";
|
|
4
4
|
import type {
|
5
5
|
ActiveSubscriptions,
|
6
6
|
Callback,
|
7
|
+
IAsyncIterator,
|
7
8
|
IDecodedMessage,
|
8
9
|
IDecoder,
|
9
10
|
IFilter,
|
@@ -11,6 +12,8 @@ import type {
|
|
11
12
|
ProtocolOptions,
|
12
13
|
} from "@waku/interfaces";
|
13
14
|
import { WakuMessage as WakuMessageProto } from "@waku/proto";
|
15
|
+
import { groupByContentTopic } from "@waku/utils";
|
16
|
+
import { toAsyncIterator } from "@waku/utils";
|
14
17
|
import debug from "debug";
|
15
18
|
import all from "it-all";
|
16
19
|
import * as lp from "it-length-prefixed";
|
@@ -18,7 +21,6 @@ import { pipe } from "it-pipe";
|
|
18
21
|
|
19
22
|
import { BaseProtocol } from "../base_protocol.js";
|
20
23
|
import { DefaultPubSubTopic } from "../constants.js";
|
21
|
-
import { groupByContentTopic } from "../group_by.js";
|
22
24
|
import { toProtoMessage } from "../to_proto_message.js";
|
23
25
|
|
24
26
|
import { ContentFilter, FilterRpc } from "./filter_rpc.js";
|
@@ -92,9 +94,9 @@ class Filter extends BaseProtocol implements IFilter {
|
|
92
94
|
try {
|
93
95
|
const res = await pipe(
|
94
96
|
[request.encode()],
|
95
|
-
lp.encode
|
97
|
+
lp.encode,
|
96
98
|
stream,
|
97
|
-
lp.decode
|
99
|
+
lp.decode,
|
98
100
|
async (source) => await all(source)
|
99
101
|
);
|
100
102
|
|
@@ -124,6 +126,13 @@ class Filter extends BaseProtocol implements IFilter {
|
|
124
126
|
};
|
125
127
|
}
|
126
128
|
|
129
|
+
public toSubscriptionIterator<T extends IDecodedMessage>(
|
130
|
+
decoders: IDecoder<T> | IDecoder<T>[],
|
131
|
+
opts?: ProtocolOptions | undefined
|
132
|
+
): Promise<IAsyncIterator<T>> {
|
133
|
+
return toAsyncIterator(this, decoders, opts);
|
134
|
+
}
|
135
|
+
|
127
136
|
public getActiveSubscriptions(): ActiveSubscriptions {
|
128
137
|
const map: ActiveSubscriptions = new Map();
|
129
138
|
const subscriptions = this.subscriptions as Map<
|
@@ -143,7 +152,7 @@ class Filter extends BaseProtocol implements IFilter {
|
|
143
152
|
private onRequest(streamData: IncomingStreamData): void {
|
144
153
|
log("Receiving message push");
|
145
154
|
try {
|
146
|
-
pipe(streamData.stream, lp.decode
|
155
|
+
pipe(streamData.stream, lp.decode, async (source) => {
|
147
156
|
for await (const bytes of source) {
|
148
157
|
const res = FilterRpc.decode(bytes.slice());
|
149
158
|
if (res.requestId && res.push?.messages?.length) {
|
@@ -225,7 +234,7 @@ class Filter extends BaseProtocol implements IFilter {
|
|
225
234
|
|
226
235
|
const stream = await this.newStream(peer);
|
227
236
|
try {
|
228
|
-
await pipe([unsubscribeRequest.encode()], lp.encode
|
237
|
+
await pipe([unsubscribeRequest.encode()], lp.encode, stream.sink);
|
229
238
|
} catch (e) {
|
230
239
|
log("Error unsubscribing", e);
|
231
240
|
throw e;
|
@@ -5,8 +5,7 @@ import type { Libp2p } from "libp2p";
|
|
5
5
|
|
6
6
|
import { createEncoder } from "../index.js";
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
export const RelayPingContentTopic = "/relay-ping/1/ping/null";
|
10
9
|
const log = debug("waku:keep-alive");
|
11
10
|
|
12
11
|
export interface KeepAliveOptions {
|