@waku/core 0.0.29-a7bf4fd.0 → 0.0.29-ea43068.0
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/bundle/{base_protocol-D0Zdzb-v.js → base_protocol-BP01VsRl.js} +1 -1
- package/bundle/{index-BJwgMx4y.js → index-MPHQBeOH.js} +4 -11
- package/bundle/index.js +64 -356
- package/bundle/lib/base_protocol.js +2 -2
- package/bundle/lib/message/version_0.js +2 -2
- package/bundle/{version_0-BKNRHuW5.js → version_0-BhzZUf0Y.js} +3 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/connection_manager.js +5 -0
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/index.d.ts +13 -2
- package/dist/lib/filter/index.js +50 -259
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/keep_alive_manager.js +1 -1
- package/dist/lib/wait_for_remote_peer.js +1 -1
- package/dist/lib/wait_for_remote_peer.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/lib/connection_manager.ts +11 -0
- package/src/lib/filter/index.ts +115 -455
- package/src/lib/keep_alive_manager.ts +1 -1
- package/src/lib/wait_for_remote_peer.ts +1 -1
package/dist/lib/filter/index.js
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
import { DefaultPubsubTopic } from "@waku/interfaces";
|
2
|
-
import { messageHashStr } from "@waku/message-hash";
|
3
|
-
import { ensurePubsubTopicIsConfigured, groupByContentTopic, singleShardInfoToPubsubTopic, toAsyncIterator } from "@waku/utils";
|
4
1
|
import { Logger } from "@waku/utils";
|
5
2
|
import all from "it-all";
|
6
3
|
import * as lp from "it-length-prefixed";
|
@@ -12,242 +9,14 @@ export const FilterCodecs = {
|
|
12
9
|
SUBSCRIBE: "/vac/waku/filter-subscribe/2.0.0-beta1",
|
13
10
|
PUSH: "/vac/waku/filter-push/2.0.0-beta1"
|
14
11
|
};
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
class Subscription {
|
19
|
-
peers;
|
20
|
-
pubsubTopic;
|
21
|
-
newStream;
|
22
|
-
receivedMessagesHashStr = [];
|
23
|
-
subscriptionCallbacks;
|
24
|
-
constructor(pubsubTopic, remotePeers, newStream) {
|
25
|
-
this.peers = remotePeers;
|
26
|
-
this.pubsubTopic = pubsubTopic;
|
27
|
-
this.newStream = newStream;
|
28
|
-
this.subscriptionCallbacks = new Map();
|
29
|
-
}
|
30
|
-
async subscribe(decoders, callback) {
|
31
|
-
const decodersArray = Array.isArray(decoders) ? decoders : [decoders];
|
32
|
-
// check that all decoders are configured for the same pubsub topic as this subscription
|
33
|
-
decodersArray.forEach((decoder) => {
|
34
|
-
if (decoder.pubsubTopic !== this.pubsubTopic) {
|
35
|
-
throw new Error(`Pubsub topic not configured: decoder is configured for pubsub topic ${decoder.pubsubTopic} but this subscription is for pubsub topic ${this.pubsubTopic}. Please create a new Subscription for the different pubsub topic.`);
|
36
|
-
}
|
37
|
-
});
|
38
|
-
const decodersGroupedByCT = groupByContentTopic(decodersArray);
|
39
|
-
const contentTopics = Array.from(decodersGroupedByCT.keys());
|
40
|
-
const promises = this.peers.map(async (peer) => {
|
41
|
-
const stream = await this.newStream(peer);
|
42
|
-
const request = FilterSubscribeRpc.createSubscribeRequest(this.pubsubTopic, contentTopics);
|
43
|
-
try {
|
44
|
-
const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
45
|
-
if (!res || !res.length) {
|
46
|
-
throw Error(`No response received for request ${request.requestId}: ${res}`);
|
47
|
-
}
|
48
|
-
const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
|
49
|
-
if (statusCode < 200 || statusCode >= 300) {
|
50
|
-
throw new Error(`Filter subscribe request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
|
51
|
-
}
|
52
|
-
log.info("Subscribed to peer ", peer.id.toString(), "for content topics", contentTopics);
|
53
|
-
}
|
54
|
-
catch (e) {
|
55
|
-
throw new Error("Error subscribing to peer: " +
|
56
|
-
peer.id.toString() +
|
57
|
-
" for content topics: " +
|
58
|
-
contentTopics +
|
59
|
-
": " +
|
60
|
-
e);
|
61
|
-
}
|
62
|
-
});
|
63
|
-
const results = await Promise.allSettled(promises);
|
64
|
-
this.handleErrors(results, "subscribe");
|
65
|
-
// Save the callback functions by content topics so they
|
66
|
-
// can easily be removed (reciprocally replaced) if `unsubscribe` (reciprocally `subscribe`)
|
67
|
-
// is called for those content topics
|
68
|
-
decodersGroupedByCT.forEach((decoders, contentTopic) => {
|
69
|
-
// Cast the type because a given `subscriptionCallbacks` map may hold
|
70
|
-
// Decoder that decode to different implementations of `IDecodedMessage`
|
71
|
-
const subscriptionCallback = {
|
72
|
-
decoders,
|
73
|
-
callback
|
74
|
-
};
|
75
|
-
// The callback and decoder may override previous values, this is on
|
76
|
-
// purpose as the user may call `subscribe` to refresh the subscription
|
77
|
-
this.subscriptionCallbacks.set(contentTopic, subscriptionCallback);
|
78
|
-
});
|
79
|
-
}
|
80
|
-
async unsubscribe(contentTopics) {
|
81
|
-
const promises = this.peers.map(async (peer) => {
|
82
|
-
const stream = await this.newStream(peer);
|
83
|
-
const unsubscribeRequest = FilterSubscribeRpc.createUnsubscribeRequest(this.pubsubTopic, contentTopics);
|
84
|
-
try {
|
85
|
-
await pipe([unsubscribeRequest.encode()], lp.encode, stream.sink);
|
86
|
-
}
|
87
|
-
catch (error) {
|
88
|
-
throw new Error("Error unsubscribing: " + error);
|
89
|
-
}
|
90
|
-
contentTopics.forEach((contentTopic) => {
|
91
|
-
this.subscriptionCallbacks.delete(contentTopic);
|
92
|
-
});
|
93
|
-
});
|
94
|
-
const results = await Promise.allSettled(promises);
|
95
|
-
this.handleErrors(results, "unsubscribe");
|
96
|
-
}
|
97
|
-
async ping() {
|
98
|
-
const promises = this.peers.map(async (peer) => {
|
99
|
-
const stream = await this.newStream(peer);
|
100
|
-
const request = FilterSubscribeRpc.createSubscriberPingRequest();
|
101
|
-
try {
|
102
|
-
const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
103
|
-
if (!res || !res.length) {
|
104
|
-
throw Error(`No response received for request ${request.requestId}: ${res}`);
|
105
|
-
}
|
106
|
-
const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
|
107
|
-
if (statusCode < 200 || statusCode >= 300) {
|
108
|
-
throw new Error(`Filter ping request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
|
109
|
-
}
|
110
|
-
log.info(`Ping successful for peer ${peer.id.toString()}`);
|
111
|
-
}
|
112
|
-
catch (error) {
|
113
|
-
log.error("Error pinging: ", error);
|
114
|
-
throw error; // Rethrow the actual error instead of wrapping it
|
115
|
-
}
|
116
|
-
});
|
117
|
-
const results = await Promise.allSettled(promises);
|
118
|
-
this.handleErrors(results, "ping");
|
119
|
-
}
|
120
|
-
async unsubscribeAll() {
|
121
|
-
const promises = this.peers.map(async (peer) => {
|
122
|
-
const stream = await this.newStream(peer);
|
123
|
-
const request = FilterSubscribeRpc.createUnsubscribeAllRequest(this.pubsubTopic);
|
124
|
-
try {
|
125
|
-
const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
126
|
-
if (!res || !res.length) {
|
127
|
-
throw Error(`No response received for request ${request.requestId}: ${res}`);
|
128
|
-
}
|
129
|
-
const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
|
130
|
-
if (statusCode < 200 || statusCode >= 300) {
|
131
|
-
throw new Error(`Filter unsubscribe all request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
|
132
|
-
}
|
133
|
-
this.subscriptionCallbacks.clear();
|
134
|
-
log.info(`Unsubscribed from all content topics for pubsub topic ${this.pubsubTopic}`);
|
135
|
-
}
|
136
|
-
catch (error) {
|
137
|
-
throw new Error("Error unsubscribing from all content topics: " + error);
|
138
|
-
}
|
139
|
-
});
|
140
|
-
const results = await Promise.allSettled(promises);
|
141
|
-
this.handleErrors(results, "unsubscribeAll");
|
142
|
-
}
|
143
|
-
async processMessage(message) {
|
144
|
-
const hashedMessageStr = messageHashStr(this.pubsubTopic, message);
|
145
|
-
if (this.receivedMessagesHashStr.includes(hashedMessageStr)) {
|
146
|
-
log.info("Message already received, skipping");
|
147
|
-
return;
|
148
|
-
}
|
149
|
-
this.receivedMessagesHashStr.push(hashedMessageStr);
|
150
|
-
const { contentTopic } = message;
|
151
|
-
const subscriptionCallback = this.subscriptionCallbacks.get(contentTopic);
|
152
|
-
if (!subscriptionCallback) {
|
153
|
-
log.error("No subscription callback available for ", contentTopic);
|
154
|
-
return;
|
155
|
-
}
|
156
|
-
log.info("Processing message with content topic ", contentTopic, " on pubsub topic ", this.pubsubTopic);
|
157
|
-
await pushMessage(subscriptionCallback, this.pubsubTopic, message);
|
158
|
-
}
|
159
|
-
// Filter out only the rejected promises and extract & handle their reasons
|
160
|
-
handleErrors(results, type) {
|
161
|
-
const errors = results
|
162
|
-
.filter((result) => result.status === "rejected")
|
163
|
-
.map((rejectedResult) => rejectedResult.reason);
|
164
|
-
if (errors.length === this.peers.length) {
|
165
|
-
const errorCounts = new Map();
|
166
|
-
// TODO: streamline error logging with https://github.com/orgs/waku-org/projects/2/views/1?pane=issue&itemId=42849952
|
167
|
-
errors.forEach((error) => {
|
168
|
-
const message = error instanceof Error ? error.message : String(error);
|
169
|
-
errorCounts.set(message, (errorCounts.get(message) || 0) + 1);
|
170
|
-
});
|
171
|
-
const uniqueErrorMessages = Array.from(errorCounts, ([message, count]) => `${message} (occurred ${count} times)`).join(", ");
|
172
|
-
throw new Error(`Error ${type} all peers: ${uniqueErrorMessages}`);
|
173
|
-
}
|
174
|
-
else if (errors.length > 0) {
|
175
|
-
// TODO: handle renewing faulty peers with new peers (https://github.com/waku-org/js-waku/issues/1463)
|
176
|
-
log.warn(`Some ${type} failed. These will be refreshed with new peers`, errors);
|
177
|
-
}
|
178
|
-
else {
|
179
|
-
log.info(`${type} successful for all peers`);
|
180
|
-
}
|
181
|
-
}
|
182
|
-
}
|
183
|
-
const DEFAULT_NUM_PEERS = 3;
|
184
|
-
class Filter extends BaseProtocol {
|
185
|
-
activeSubscriptions = new Map();
|
186
|
-
getActiveSubscription(pubsubTopic) {
|
187
|
-
return this.activeSubscriptions.get(pubsubTopic);
|
188
|
-
}
|
189
|
-
setActiveSubscription(pubsubTopic, subscription) {
|
190
|
-
this.activeSubscriptions.set(pubsubTopic, subscription);
|
191
|
-
return subscription;
|
192
|
-
}
|
193
|
-
//TODO: Remove when FilterCore and FilterSDK are introduced
|
194
|
-
numPeersToUse;
|
195
|
-
constructor(libp2p, options) {
|
12
|
+
export class FilterCore extends BaseProtocol {
|
13
|
+
handleIncomingMessage;
|
14
|
+
constructor(handleIncomingMessage, libp2p, options) {
|
196
15
|
super(FilterCodecs.SUBSCRIBE, libp2p.components, log, options.pubsubTopics, options);
|
197
|
-
this.
|
16
|
+
this.handleIncomingMessage = handleIncomingMessage;
|
198
17
|
libp2p.handle(FilterCodecs.PUSH, this.onRequest.bind(this)).catch((e) => {
|
199
18
|
log.error("Failed to register ", FilterCodecs.PUSH, e);
|
200
19
|
});
|
201
|
-
this.activeSubscriptions = new Map();
|
202
|
-
}
|
203
|
-
/**
|
204
|
-
* Creates a new subscription to the given pubsub topic.
|
205
|
-
* The subscription is made to multiple peers for decentralization.
|
206
|
-
* @param pubsubTopicShardInfo The pubsub topic to subscribe to.
|
207
|
-
* @returns The subscription object.
|
208
|
-
*/
|
209
|
-
async createSubscription(pubsubTopicShardInfo = DefaultPubsubTopic) {
|
210
|
-
const pubsubTopic = typeof pubsubTopicShardInfo == "string"
|
211
|
-
? pubsubTopicShardInfo
|
212
|
-
: singleShardInfoToPubsubTopic(pubsubTopicShardInfo);
|
213
|
-
ensurePubsubTopicIsConfigured(pubsubTopic, this.pubsubTopics);
|
214
|
-
const peers = await this.getPeers({
|
215
|
-
maxBootstrapPeers: 1,
|
216
|
-
numPeers: this.numPeersToUse
|
217
|
-
});
|
218
|
-
if (peers.length === 0) {
|
219
|
-
throw new Error("No peer found to initiate subscription.");
|
220
|
-
}
|
221
|
-
log.info(`Creating filter subscription with ${peers.length} peers: `, peers.map((peer) => peer.id.toString()));
|
222
|
-
const subscription = this.getActiveSubscription(pubsubTopic) ??
|
223
|
-
this.setActiveSubscription(pubsubTopic, new Subscription(pubsubTopic, peers, this.getStream.bind(this)));
|
224
|
-
return subscription;
|
225
|
-
}
|
226
|
-
toSubscriptionIterator(decoders) {
|
227
|
-
return toAsyncIterator(this, decoders);
|
228
|
-
}
|
229
|
-
/**
|
230
|
-
* This method is used to satisfy the `IReceiver` interface.
|
231
|
-
*
|
232
|
-
* @hidden
|
233
|
-
*
|
234
|
-
* @param decoders The decoders to use for the subscription.
|
235
|
-
* @param callback The callback function to use for the subscription.
|
236
|
-
* @param opts Optional protocol options for the subscription.
|
237
|
-
*
|
238
|
-
* @returns A Promise that resolves to a function that unsubscribes from the subscription.
|
239
|
-
*
|
240
|
-
* @remarks
|
241
|
-
* This method should not be used directly.
|
242
|
-
* Instead, use `createSubscription` to create a new subscription.
|
243
|
-
*/
|
244
|
-
async subscribe(decoders, callback) {
|
245
|
-
const subscription = await this.createSubscription(this.pubsubTopics?.[0] || DefaultPubsubTopic);
|
246
|
-
await subscription.subscribe(decoders, callback);
|
247
|
-
const contentTopics = Array.from(groupByContentTopic(Array.isArray(decoders) ? decoders : [decoders]).keys());
|
248
|
-
return async () => {
|
249
|
-
await subscription.unsubscribe(contentTopics);
|
250
|
-
};
|
251
20
|
}
|
252
21
|
onRequest(streamData) {
|
253
22
|
const { connection, stream } = streamData;
|
@@ -266,12 +35,7 @@ class Filter extends BaseProtocol {
|
|
266
35
|
log.error("Pubsub topic missing from push message");
|
267
36
|
return;
|
268
37
|
}
|
269
|
-
|
270
|
-
if (!subscription) {
|
271
|
-
log.error(`No subscription locally registered for topic ${pubsubTopic}`);
|
272
|
-
return;
|
273
|
-
}
|
274
|
-
await subscription.processMessage(wakuMessage);
|
38
|
+
await this.handleIncomingMessage(pubsubTopic, wakuMessage);
|
275
39
|
}
|
276
40
|
}).then(() => {
|
277
41
|
log.info("Receiving pipe closed.");
|
@@ -283,26 +47,53 @@ class Filter extends BaseProtocol {
|
|
283
47
|
log.error("Error decoding message", e);
|
284
48
|
}
|
285
49
|
}
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
50
|
+
async subscribe(pubsubTopic, peer, contentTopics) {
|
51
|
+
const stream = await this.getStream(peer);
|
52
|
+
const request = FilterSubscribeRpc.createSubscribeRequest(pubsubTopic, contentTopics);
|
53
|
+
const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
54
|
+
if (!res || !res.length) {
|
55
|
+
throw Error(`No response received for request ${request.requestId}: ${res}`);
|
56
|
+
}
|
57
|
+
const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
|
58
|
+
if (statusCode < 200 || statusCode >= 300) {
|
59
|
+
throw new Error(`Filter subscribe request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
|
60
|
+
}
|
296
61
|
}
|
297
|
-
|
298
|
-
const
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
62
|
+
async unsubscribe(pubsubTopic, peer, contentTopics) {
|
63
|
+
const stream = await this.getStream(peer);
|
64
|
+
const unsubscribeRequest = FilterSubscribeRpc.createUnsubscribeRequest(pubsubTopic, contentTopics);
|
65
|
+
await pipe([unsubscribeRequest.encode()], lp.encode, stream.sink);
|
66
|
+
}
|
67
|
+
async unsubscribeAll(pubsubTopic, peer) {
|
68
|
+
const stream = await this.getStream(peer);
|
69
|
+
const request = FilterSubscribeRpc.createUnsubscribeAllRequest(pubsubTopic);
|
70
|
+
const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
71
|
+
if (!res || !res.length) {
|
72
|
+
throw Error(`No response received for request ${request.requestId}: ${res}`);
|
73
|
+
}
|
74
|
+
const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
|
75
|
+
if (statusCode < 200 || statusCode >= 300) {
|
76
|
+
throw new Error(`Filter unsubscribe all request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
|
77
|
+
}
|
303
78
|
}
|
304
|
-
|
305
|
-
|
79
|
+
async ping(peer) {
|
80
|
+
const stream = await this.getStream(peer);
|
81
|
+
const request = FilterSubscribeRpc.createSubscriberPingRequest();
|
82
|
+
try {
|
83
|
+
const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
84
|
+
if (!res || !res.length) {
|
85
|
+
throw Error(`No response received for request ${request.requestId}: ${res}`);
|
86
|
+
}
|
87
|
+
const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
|
88
|
+
if (statusCode < 200 || statusCode >= 300) {
|
89
|
+
throw new Error(`Filter ping request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
|
90
|
+
}
|
91
|
+
log.info(`Ping successful for peer ${peer.id.toString()}`);
|
92
|
+
}
|
93
|
+
catch (error) {
|
94
|
+
log.error("Error pinging: ", error);
|
95
|
+
throw error; // Rethrow the actual error instead of wrapping it
|
96
|
+
}
|
306
97
|
}
|
307
98
|
}
|
308
99
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/filter/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/filter/index.ts"],"names":[],"mappings":"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"}
|
@@ -45,7 +45,7 @@ export async function waitForRemotePeer(waku, protocols, timeoutMs) {
|
|
45
45
|
if (protocols.includes(Protocols.Filter)) {
|
46
46
|
if (!waku.filter)
|
47
47
|
throw new Error("Cannot wait for Filter peer: protocol not mounted");
|
48
|
-
promises.push(waitForConnectedPeer(waku.filter, waku.libp2p.services.metadata));
|
48
|
+
promises.push(waitForConnectedPeer(waku.filter.protocol, waku.libp2p.services.metadata));
|
49
49
|
}
|
50
50
|
if (timeoutMs) {
|
51
51
|
await rejectOnTimeout(Promise.all(promises), timeoutMs, "Timed out waiting for a remote peer.");
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"wait_for_remote_peer.js","sourceRoot":"","sources":["../../src/lib/wait_for_remote_peer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAE/C,iGAAiG;AACjG;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAU,EACV,SAAuB,EACvB,SAAkB;IAElB,SAAS,GAAG,SAAS,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAEzE,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,EACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAC9B,CACF,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,
|
1
|
+
{"version":3,"file":"wait_for_remote_peer.js","sourceRoot":"","sources":["../../src/lib/wait_for_remote_peer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"@waku/core","version":"0.0.29-
|
1
|
+
{"name":"@waku/core","version":"0.0.29-ea43068.0","description":"TypeScript implementation of the Waku v2 protocol","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./lib/predefined_bootstrap_nodes":{"types":"./dist/lib/predefined_bootstrap_nodes.d.ts","import":"./dist/lib/predefined_bootstrap_nodes.js"},"./lib/message/version_0":{"types":"./dist/lib/message/version_0.d.ts","import":"./dist/lib/message/version_0.js"},"./lib/base_protocol":{"types":"./dist/lib/base_protocol.d.ts","import":"./dist/lib/base_protocol.js"}},"typesVersions":{"*":{"lib/*":["dist/lib/*"],"constants/*":["dist/constants/*"]}},"type":"module","homepage":"https://github.com/waku-org/js-waku/tree/master/packages/core#readme","repository":{"type":"git","url":"https://github.com/waku-org/js-waku.git"},"bugs":{"url":"https://github.com/waku-org/js-waku/issues"},"license":"MIT OR Apache-2.0","keywords":["waku","decentralised","communication","web3","ethereum","dapps"],"scripts":{"build":"run-s build:**","build:esm":"tsc","build:bundle":"rollup --config rollup.config.js","fix":"run-s fix:*","fix:lint":"eslint src *.js --fix","check":"run-s check:*","check:tsc":"tsc -p tsconfig.dev.json","check:lint":"eslint src *.js","check:spelling":"cspell \"{README.md,src/**/*.ts}\"","test":"NODE_ENV=test run-s test:*","test:node":"NODE_ENV=test TS_NODE_PROJECT=./tsconfig.dev.json mocha","test:browser":"NODE_ENV=test karma start karma.conf.cjs","watch:build":"tsc -p tsconfig.json -w","watch:test":"mocha --watch","prepublish":"npm run build","reset-hard":"git clean -dfx -e .idea && git reset --hard && npm i && npm run build"},"engines":{"node":">=18"},"dependencies":{"@libp2p/ping":"^1.0.12","@waku/enr":"0.0.23-ea43068.0","@waku/interfaces":"0.0.24-ea43068.0","@waku/proto":"0.0.7-ea43068.0","@waku/utils":"0.0.17-ea43068.0","debug":"^4.3.4","it-all":"^3.0.4","it-length-prefixed":"^9.0.4","it-pipe":"^3.0.1","p-event":"^6.0.1","uint8arraylist":"^2.4.3","uuid":"^9.0.0"},"devDependencies":{"@multiformats/multiaddr":"^12.0.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.2.3","@types/chai":"^4.3.11","@types/debug":"^4.1.12","@types/mocha":"^10.0.6","@types/uuid":"^9.0.8","@waku/build-utils":"*","chai":"^4.3.10","cspell":"^8.6.1","fast-check":"^3.15.1","ignore-loader":"^0.1.2","isomorphic-fetch":"^3.0.0","mocha":"^10.3.0","npm-run-all":"^4.1.5","process":"^0.11.10","rollup":"^4.12.0"},"peerDependencies":{"@multiformats/multiaddr":"^12.0.0","libp2p":"^1.1.2","@waku/enr":"0.0.23-ea43068.0","@waku/interfaces":"0.0.24-ea43068.0","@waku/proto":"0.0.7-ea43068.0","@waku/utils":"0.0.17-ea43068.0"},"peerDependenciesMeta":{"@multiformats/multiaddr":{"optional":true},"@waku/interfaces":{"optional":true}},"files":["dist","bundle","src/**/*.ts","!**/*.spec.*","!**/*.json","CHANGELOG.md","LICENSE","README.md"]}
|
package/src/index.ts
CHANGED
@@ -7,7 +7,7 @@ export type {
|
|
7
7
|
export * as message from "./lib/message/index.js";
|
8
8
|
|
9
9
|
export * as waku_filter from "./lib/filter/index.js";
|
10
|
-
export {
|
10
|
+
export { FilterCore, FilterCodecs } from "./lib/filter/index.js";
|
11
11
|
|
12
12
|
export * as waku_light_push from "./lib/light_push/index.js";
|
13
13
|
export { LightPushCodec, LightPushCore } from "./lib/light_push/index.js";
|
@@ -456,6 +456,17 @@ export class ConnectionManager
|
|
456
456
|
return false;
|
457
457
|
}
|
458
458
|
|
459
|
+
const peer = await this.libp2p.peerStore.get(peerId);
|
460
|
+
|
461
|
+
if (
|
462
|
+
!peer.addresses.some((val) => val.multiaddr.toString().includes("/wss/"))
|
463
|
+
) {
|
464
|
+
log.info(
|
465
|
+
`Peer ${peerId.toString()} does not have a multiaddr that supports wss, not dialing.`
|
466
|
+
);
|
467
|
+
return false;
|
468
|
+
}
|
469
|
+
|
459
470
|
// if the peer is not part of any of the configured pubsub topics, don't dial
|
460
471
|
if (!(await this.isPeerTopicConfigured(peerId))) {
|
461
472
|
const shardInfo = await this.getPeerShardInfo(
|