@waku/core 0.0.22 → 0.0.24

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 (73) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/bundle/base_protocol-2a0c882e.js +1250 -0
  3. package/bundle/{browser-bde977a3.js → browser-90197c87.js} +26 -1
  4. package/bundle/index.js +20048 -3236
  5. package/bundle/lib/base_protocol.js +2 -116
  6. package/bundle/lib/message/version_0.js +2 -2
  7. package/bundle/lib/predefined_bootstrap_nodes.js +6 -6
  8. package/bundle/{version_0-86411fdf.js → version_0-f4afd324.js} +907 -814
  9. package/dist/.tsbuildinfo +1 -0
  10. package/dist/index.d.ts +5 -4
  11. package/dist/index.js +4 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/base_protocol.d.ts +18 -5
  14. package/dist/lib/base_protocol.js +25 -8
  15. package/dist/lib/base_protocol.js.map +1 -1
  16. package/dist/lib/connection_manager.d.ts +15 -3
  17. package/dist/lib/connection_manager.js +92 -34
  18. package/dist/lib/connection_manager.js.map +1 -1
  19. package/dist/lib/filter/filter_rpc.js +4 -4
  20. package/dist/lib/filter/index.d.ts +4 -0
  21. package/dist/lib/filter/index.js +38 -29
  22. package/dist/lib/filter/index.js.map +1 -1
  23. package/dist/lib/filterPeers.d.ts +10 -0
  24. package/dist/lib/filterPeers.js +31 -0
  25. package/dist/lib/filterPeers.js.map +1 -0
  26. package/dist/lib/keep_alive_manager.d.ts +4 -2
  27. package/dist/lib/keep_alive_manager.js +62 -19
  28. package/dist/lib/keep_alive_manager.js.map +1 -1
  29. package/dist/lib/light_push/index.js +85 -38
  30. package/dist/lib/light_push/index.js.map +1 -1
  31. package/dist/lib/light_push/push_rpc.d.ts +1 -1
  32. package/dist/lib/light_push/push_rpc.js +3 -3
  33. package/dist/lib/message/version_0.d.ts +13 -13
  34. package/dist/lib/message/version_0.js +21 -18
  35. package/dist/lib/message/version_0.js.map +1 -1
  36. package/dist/lib/predefined_bootstrap_nodes.js +6 -6
  37. package/dist/lib/store/history_rpc.d.ts +1 -1
  38. package/dist/lib/store/history_rpc.js +4 -4
  39. package/dist/lib/store/index.d.ts +1 -6
  40. package/dist/lib/store/index.js +91 -47
  41. package/dist/lib/store/index.js.map +1 -1
  42. package/dist/lib/stream_manager.d.ts +15 -0
  43. package/dist/lib/stream_manager.js +56 -0
  44. package/dist/lib/stream_manager.js.map +1 -0
  45. package/dist/lib/to_proto_message.js +1 -1
  46. package/dist/lib/wait_for_remote_peer.d.ts +2 -2
  47. package/dist/lib/wait_for_remote_peer.js +10 -7
  48. package/dist/lib/wait_for_remote_peer.js.map +1 -1
  49. package/dist/lib/waku.d.ts +6 -5
  50. package/dist/lib/waku.js +6 -4
  51. package/dist/lib/waku.js.map +1 -1
  52. package/package.json +17 -33
  53. package/src/index.ts +6 -9
  54. package/src/lib/base_protocol.ts +49 -18
  55. package/src/lib/connection_manager.ts +132 -41
  56. package/src/lib/filter/filter_rpc.ts +4 -4
  57. package/src/lib/filter/index.ts +53 -41
  58. package/src/lib/filterPeers.ts +43 -0
  59. package/src/lib/keep_alive_manager.ts +79 -22
  60. package/src/lib/light_push/index.ts +132 -51
  61. package/src/lib/light_push/push_rpc.ts +3 -3
  62. package/src/lib/message/version_0.ts +27 -15
  63. package/src/lib/predefined_bootstrap_nodes.ts +7 -7
  64. package/src/lib/store/history_rpc.ts +6 -6
  65. package/src/lib/store/index.ts +121 -63
  66. package/src/lib/stream_manager.ts +72 -0
  67. package/src/lib/to_proto_message.ts +1 -1
  68. package/src/lib/wait_for_remote_peer.ts +11 -8
  69. package/src/lib/waku.ts +7 -4
  70. package/dist/lib/push_or_init_map.d.ts +0 -1
  71. package/dist/lib/push_or_init_map.js +0 -9
  72. package/dist/lib/push_or_init_map.js.map +0 -1
  73. package/src/lib/push_or_init_map.ts +0 -13
@@ -1,6 +1,6 @@
1
1
  import { sha256 } from "@noble/hashes/sha256";
2
2
  import { proto_store as proto } from "@waku/proto";
3
- import { isDefined } from "@waku/utils";
3
+ import { ensurePubsubTopicIsConfigured, isDefined } from "@waku/utils";
4
4
  import { concat, utf8ToBytes } from "@waku/utils/bytes";
5
5
  import debug from "debug";
6
6
  import all from "it-all";
@@ -22,11 +22,46 @@ export { PageDirection };
22
22
  * The Waku Store protocol can be used to retrieved historical messages.
23
23
  */
24
24
  class Store extends BaseProtocol {
25
- options;
25
+ pubsubTopics;
26
+ NUM_PEERS_PROTOCOL = 1;
26
27
  constructor(libp2p, options) {
27
28
  super(StoreCodec, libp2p.components);
28
- this.options = options ?? {};
29
+ this.pubsubTopics = options?.pubsubTopics ?? [DefaultPubSubTopic];
29
30
  }
31
+ /**
32
+ * Processes messages based on the provided callback and options.
33
+ * @private
34
+ */
35
+ async processMessages(messages, callback, options) {
36
+ let abort = false;
37
+ const messagesOrUndef = await Promise.all(messages);
38
+ let processedMessages = messagesOrUndef.filter(isDefined);
39
+ if (this.shouldReverseOrder(options)) {
40
+ processedMessages = processedMessages.reverse();
41
+ }
42
+ await Promise.all(processedMessages.map(async (msg) => {
43
+ if (msg && !abort) {
44
+ abort = Boolean(await callback(msg));
45
+ }
46
+ }));
47
+ return abort;
48
+ }
49
+ /**
50
+ * Determines whether to reverse the order of messages based on the provided options.
51
+ *
52
+ * Messages in pages are ordered from oldest (first) to most recent (last).
53
+ * https://github.com/vacp2p/rfc/issues/533
54
+ *
55
+ * @private
56
+ */
57
+ shouldReverseOrder(options) {
58
+ return (typeof options?.pageDirection === "undefined" ||
59
+ options?.pageDirection === PageDirection.BACKWARD);
60
+ }
61
+ /**
62
+ * @deprecated Use `queryWithOrderedCallback` instead
63
+ **/
64
+ queryOrderedCallback = this.queryWithOrderedCallback;
30
65
  /**
31
66
  * Do a query to a Waku Store to retrieve historical/missed messages.
32
67
  *
@@ -44,31 +79,16 @@ class Store extends BaseProtocol {
44
79
  * or if an error is encountered when processing the reply,
45
80
  * or if two decoders with the same content topic are passed.
46
81
  */
47
- async queryOrderedCallback(decoders, callback, options) {
48
- let abort = false;
82
+ async queryWithOrderedCallback(decoders, callback, options) {
49
83
  for await (const promises of this.queryGenerator(decoders, options)) {
50
- if (abort)
84
+ if (await this.processMessages(promises, callback, options))
51
85
  break;
52
- const messagesOrUndef = await Promise.all(promises);
53
- let messages = messagesOrUndef.filter(isDefined);
54
- // Messages in pages are ordered from oldest (first) to most recent (last).
55
- // https://github.com/vacp2p/rfc/issues/533
56
- if (typeof options?.pageDirection === "undefined" ||
57
- options?.pageDirection === PageDirection.BACKWARD) {
58
- messages = messages.reverse();
59
- }
60
- await Promise.all(messages.map(async (msg) => {
61
- if (msg && !abort) {
62
- abort = Boolean(await callback(msg));
63
- }
64
- }));
65
86
  }
66
87
  }
67
88
  /**
68
89
  * Do a query to a Waku Store to retrieve historical/missed messages.
69
- *
70
90
  * The callback function takes a `Promise<WakuMessage>` in input,
71
- * useful if messages needs to be decrypted and performance matters.
91
+ * useful if messages need to be decrypted and performance matters.
72
92
  *
73
93
  * The order of the messages passed to the callback is as follows:
74
94
  * - within a page, messages are expected to be ordered from oldest to most recent
@@ -82,18 +102,18 @@ class Store extends BaseProtocol {
82
102
  * or if an error is encountered when processing the reply,
83
103
  * or if two decoders with the same content topic are passed.
84
104
  */
85
- async queryCallbackOnPromise(decoders, callback, options) {
105
+ async queryWithPromiseCallback(decoders, callback, options) {
86
106
  let abort = false;
87
- let promises = [];
88
107
  for await (const page of this.queryGenerator(decoders, options)) {
89
- const _promises = page.map(async (msg) => {
90
- if (!abort) {
91
- abort = Boolean(await callback(msg));
92
- }
108
+ const _promises = page.map(async (msgPromise) => {
109
+ if (abort)
110
+ return;
111
+ abort = Boolean(await callback(msgPromise));
93
112
  });
94
- promises = promises.concat(_promises);
113
+ await Promise.all(_promises);
114
+ if (abort)
115
+ break;
95
116
  }
96
- await Promise.all(promises);
97
117
  }
98
118
  /**
99
119
  * Do a query to a Waku Store to retrieve historical/missed messages.
@@ -105,20 +125,39 @@ class Store extends BaseProtocol {
105
125
  * as follows:
106
126
  * - within a page, messages SHOULD be ordered from oldest to most recent
107
127
  * - pages direction depends on { @link QueryOptions.pageDirection }
108
- *
109
- * However, there is no way to guarantee the behavior of the remote node.
110
- *
111
128
  * @throws If not able to reach a Waku Store peer to query,
112
129
  * or if an error is encountered when processing the reply,
113
130
  * or if two decoders with the same content topic are passed.
131
+ *
132
+ * This API only supports querying a single pubsub topic at a time.
133
+ * If multiple decoders are provided, they must all have the same pubsub topic.
134
+ * @throws If multiple decoders with different pubsub topics are provided.
135
+ * @throws If no decoders are provided.
136
+ * @throws If no decoders are found for the provided pubsub topic.
114
137
  */
115
138
  async *queryGenerator(decoders, options) {
116
- const { pubSubTopic = DefaultPubSubTopic } = this.options;
139
+ if (decoders.length === 0) {
140
+ throw new Error("No decoders provided");
141
+ }
117
142
  let startTime, endTime;
118
143
  if (options?.timeFilter) {
119
144
  startTime = options.timeFilter.startTime;
120
145
  endTime = options.timeFilter.endTime;
121
146
  }
147
+ // convert array to set to remove duplicates
148
+ const uniquePubSubTopicsInQuery = Array.from(new Set(decoders.map((decoder) => decoder.pubsubTopic)));
149
+ // If multiple pubsub topics are provided, throw an error
150
+ if (uniquePubSubTopicsInQuery.length > 1) {
151
+ throw new Error("API does not support querying multiple pubsub topics at once");
152
+ }
153
+ // we can be certain that there is only one pubsub topic in the query
154
+ const pubSubTopicForQuery = uniquePubSubTopicsInQuery[0];
155
+ ensurePubsubTopicIsConfigured(pubSubTopicForQuery, this.pubsubTopics);
156
+ // check that the pubsubTopic from the Cursor and Decoder match
157
+ if (options?.cursor?.pubsubTopic &&
158
+ options.cursor.pubsubTopic !== pubSubTopicForQuery) {
159
+ throw new Error(`Cursor pubsub topic (${options?.cursor?.pubsubTopic}) does not match decoder pubsub topic (${pubSubTopicForQuery})`);
160
+ }
122
161
  const decodersAsMap = new Map();
123
162
  decoders.forEach((dec) => {
124
163
  if (decodersAsMap.has(dec.contentTopic)) {
@@ -126,18 +165,23 @@ class Store extends BaseProtocol {
126
165
  }
127
166
  decodersAsMap.set(dec.contentTopic, dec);
128
167
  });
129
- const contentTopics = decoders.map((dec) => dec.contentTopic);
168
+ const contentTopics = decoders
169
+ .filter((decoder) => decoder.pubsubTopic === pubSubTopicForQuery)
170
+ .map((dec) => dec.contentTopic);
171
+ if (contentTopics.length === 0) {
172
+ throw new Error("No decoders found for topic " + pubSubTopicForQuery);
173
+ }
130
174
  const queryOpts = Object.assign({
131
- pubSubTopic: pubSubTopic,
175
+ pubsubTopic: pubSubTopicForQuery,
132
176
  pageDirection: PageDirection.BACKWARD,
133
- pageSize: DefaultPageSize,
177
+ pageSize: DefaultPageSize
134
178
  }, options, { contentTopics, startTime, endTime });
135
- log("Querying history with the following options", {
136
- ...options,
137
- peerId: options?.peerId?.toString(),
138
- });
139
- const peer = await this.getPeer(options?.peerId);
140
- for await (const messages of paginate(this.newStream.bind(this, peer), queryOpts, decodersAsMap, options?.cursor)) {
179
+ log("Querying history with the following options", options);
180
+ const peer = (await this.getPeers({
181
+ numPeers: this.NUM_PEERS_PROTOCOL,
182
+ maxBootstrapPeers: 1
183
+ }))[0];
184
+ for await (const messages of paginate(this.getStream.bind(this, peer), queryOpts, decodersAsMap, options?.cursor)) {
141
185
  yield messages;
142
186
  }
143
187
  }
@@ -151,7 +195,7 @@ async function* paginate(streamFactory, queryOpts, decoders, cursor) {
151
195
  while (true) {
152
196
  queryOpts.cursor = currentCursor;
153
197
  const historyRpcQuery = HistoryRpc.createQuery(queryOpts);
154
- log("Querying store peer", `for (${queryOpts.pubSubTopic})`, queryOpts.contentTopics);
198
+ log("Querying store peer", `for (${queryOpts.pubsubTopic})`, queryOpts.contentTopics);
155
199
  const stream = await streamFactory();
156
200
  const res = await pipe([historyRpcQuery.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
157
201
  const bytes = new Uint8ArrayList();
@@ -177,7 +221,7 @@ async function* paginate(streamFactory, queryOpts, decoders, cursor) {
177
221
  if (typeof contentTopic !== "undefined") {
178
222
  const decoder = decoders.get(contentTopic);
179
223
  if (decoder) {
180
- return decoder.fromProtoObj(queryOpts.pubSubTopic, toProtoMessage(protoMsg));
224
+ return decoder.fromProtoObj(queryOpts.pubsubTopic, toProtoMessage(protoMsg));
181
225
  }
182
226
  }
183
227
  return Promise.resolve(undefined);
@@ -201,7 +245,7 @@ async function* paginate(streamFactory, queryOpts, decoders, cursor) {
201
245
  }
202
246
  }
203
247
  }
204
- export async function createCursor(message, pubsubTopic = DefaultPubSubTopic) {
248
+ export async function createCursor(message) {
205
249
  if (!message ||
206
250
  !message.timestamp ||
207
251
  !message.payload ||
@@ -213,9 +257,9 @@ export async function createCursor(message, pubsubTopic = DefaultPubSubTopic) {
213
257
  const messageTime = BigInt(message.timestamp.getTime()) * BigInt(1000000);
214
258
  return {
215
259
  digest,
216
- pubsubTopic,
260
+ pubsubTopic: message.pubsubTopic,
217
261
  senderTime: messageTime,
218
- receiverTime: messageTime,
262
+ receiverTime: messageTime
219
263
  };
220
264
  }
221
265
  export function wakuStore(init = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Stream } from "@libp2p/interface/connection";
2
+ import { Peer } from "@libp2p/interface/peer-store";
3
+ import { Libp2p } from "@waku/interfaces";
4
+ export declare class StreamManager {
5
+ multicodec: string;
6
+ getConnections: Libp2p["getConnections"];
7
+ addEventListener: Libp2p["addEventListener"];
8
+ private streamPool;
9
+ private readonly log;
10
+ constructor(multicodec: string, getConnections: Libp2p["getConnections"], addEventListener: Libp2p["addEventListener"]);
11
+ getStream(peer: Peer): Promise<Stream>;
12
+ private newStream;
13
+ private prepareNewStream;
14
+ private handlePeerUpdateStreamPool;
15
+ }
@@ -0,0 +1,56 @@
1
+ import { selectConnection } from "@waku/utils/libp2p";
2
+ import debug from "debug";
3
+ export class StreamManager {
4
+ multicodec;
5
+ getConnections;
6
+ addEventListener;
7
+ streamPool;
8
+ log;
9
+ constructor(multicodec, getConnections, addEventListener) {
10
+ this.multicodec = multicodec;
11
+ this.getConnections = getConnections;
12
+ this.addEventListener = addEventListener;
13
+ this.log = debug(`waku:stream-manager:${multicodec}`);
14
+ this.addEventListener("peer:update", this.handlePeerUpdateStreamPool.bind(this));
15
+ this.getStream = this.getStream.bind(this);
16
+ this.streamPool = new Map();
17
+ }
18
+ async getStream(peer) {
19
+ const peerIdStr = peer.id.toString();
20
+ const streamPromise = this.streamPool.get(peerIdStr);
21
+ if (!streamPromise) {
22
+ return this.newStream(peer); // fallback by creating a new stream on the spot
23
+ }
24
+ // We have the stream, let's remove it from the map
25
+ this.streamPool.delete(peerIdStr);
26
+ this.prepareNewStream(peer);
27
+ const stream = await streamPromise;
28
+ if (!stream || stream.status === "closed") {
29
+ return this.newStream(peer); // fallback by creating a new stream on the spot
30
+ }
31
+ return stream;
32
+ }
33
+ async newStream(peer) {
34
+ const connections = this.getConnections(peer.id);
35
+ const connection = selectConnection(connections);
36
+ if (!connection) {
37
+ throw new Error("Failed to get a connection to the peer");
38
+ }
39
+ return connection.newStream(this.multicodec);
40
+ }
41
+ prepareNewStream(peer) {
42
+ const streamPromise = this.newStream(peer).catch(() => {
43
+ // No error thrown as this call is not triggered by the user
44
+ this.log(`Failed to prepare a new stream for ${peer.id.toString()}`);
45
+ });
46
+ this.streamPool.set(peer.id.toString(), streamPromise);
47
+ }
48
+ handlePeerUpdateStreamPool = (evt) => {
49
+ const peer = evt.detail.peer;
50
+ if (peer.protocols.includes(this.multicodec)) {
51
+ this.log(`Preemptively opening a stream to ${peer.id.toString()}`);
52
+ this.prepareNewStream(peer);
53
+ }
54
+ };
55
+ }
56
+ //# sourceMappingURL=stream_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream_manager.js","sourceRoot":"","sources":["../../src/lib/stream_manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,aAAa;IAKf;IACA;IACA;IAND,UAAU,CAAsC;IACvC,GAAG,CAAiB;IAErC,YACS,UAAkB,EAClB,cAAwC,EACxC,gBAA4C;QAF5C,eAAU,GAAV,UAAU,CAAQ;QAClB,mBAAc,GAAd,cAAc,CAA0B;QACxC,qBAAgB,GAAhB,gBAAgB,CAA4B;QAEnD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CACnB,aAAa,EACb,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAU;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,gDAAgD;SAC9E;QAED,mDAAmD;QACnD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAElC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QAEnC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;YACzC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,gDAAgD;SAC9E;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAU;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QACD,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAEO,gBAAgB,CAAC,IAAU;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACpD,4DAA4D;YAC5D,IAAI,CAAC,GAAG,CAAC,sCAAsC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAEO,0BAA0B,GAAG,CAAC,GAA4B,EAAQ,EAAE;QAC1E,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC5C,IAAI,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC;CACH"}
@@ -5,7 +5,7 @@ const EmptyMessage = {
5
5
  timestamp: undefined,
6
6
  meta: undefined,
7
7
  rateLimitProof: undefined,
8
- ephemeral: undefined,
8
+ ephemeral: undefined
9
9
  };
10
10
  export function toProtoMessage(wire) {
11
11
  return { ...EmptyMessage, ...wire };
@@ -3,8 +3,8 @@ import { Protocols } from "@waku/interfaces";
3
3
  /**
4
4
  * Wait for a remote peer to be ready given the passed protocols.
5
5
  * Must be used after attempting to connect to nodes, using
6
- * {@link @waku/core.WakuNode.dial} or a bootstrap method with
7
- * {@link @waku/sdk.createLightNode}.
6
+ * {@link @waku/core!WakuNode.dial} or a bootstrap method with
7
+ * {@link @waku/sdk!createLightNode}.
8
8
  *
9
9
  * If the passed protocols is a GossipSub protocol, then it resolves only once
10
10
  * a peer is in a mesh, to help ensure that other peers will send and receive
@@ -5,8 +5,8 @@ const log = debug("waku:wait-for-remote-peer");
5
5
  /**
6
6
  * Wait for a remote peer to be ready given the passed protocols.
7
7
  * Must be used after attempting to connect to nodes, using
8
- * {@link @waku/core.WakuNode.dial} or a bootstrap method with
9
- * {@link @waku/sdk.createLightNode}.
8
+ * {@link @waku/core!WakuNode.dial} or a bootstrap method with
9
+ * {@link @waku/sdk!createLightNode}.
10
10
  *
11
11
  * If the passed protocols is a GossipSub protocol, then it resolves only once
12
12
  * a peer is in a mesh, to help ensure that other peers will send and receive
@@ -75,14 +75,17 @@ async function waitForConnectedPeer(protocol) {
75
75
  });
76
76
  }
77
77
  /**
78
- * Wait for a peer with the given protocol to be connected and in the gossipsub
79
- * mesh.
78
+ * Wait for at least one peer with the given protocol to be connected and in the gossipsub
79
+ * mesh for all pubsubTopics.
80
80
  */
81
81
  async function waitForGossipSubPeerInMesh(waku) {
82
82
  let peers = waku.getMeshPeers();
83
- while (peers.length == 0) {
84
- await pEvent(waku.gossipSub, "gossipsub:heartbeat");
85
- peers = waku.getMeshPeers();
83
+ const pubsubTopics = waku.pubsubTopics;
84
+ for (const topic of pubsubTopics) {
85
+ while (peers.length == 0) {
86
+ await pEvent(waku.gossipSub, "gossipsub:heartbeat");
87
+ peers = waku.getMeshPeers(topic);
88
+ }
86
89
  }
87
90
  }
88
91
  const awaitTimeout = (ms, rejectReason) => new Promise((_resolve, reject) => setTimeout(() => reject(rejectReason), ms));
@@ -1 +1 @@
1
- {"version":3,"file":"wait_for_remote_peer.js","sourceRoot":"","sources":["../../src/lib/wait_for_remote_peer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,GAAG,GAAG,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;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;QACvC,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;KACvD;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACjD;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;QAC3C,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACrD;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KAClD;IAED,IAAI,SAAS,EAAE;QACb,MAAM,eAAe,CACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EACrB,SAAS,EACT,sCAAsC,CACvC,CAAC;KACH;SAAM;QACL,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC7B;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CAAC,QAAuB;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAErC,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,GAAG,CAAC,GAAG,KAAK,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,OAAO;KACR;IAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,EAAE,GAAG,CAAC,GAAgC,EAAQ,EAAE;YACpD,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC1C,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClD,QAAQ,CAAC,yBAAyB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBACxD,OAAO,EAAE,CAAC;aACX;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,0BAA0B,CAAC,IAAY;IACpD,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAEhC,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;QACxB,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;QACpD,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;KAC7B;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,YAAoB,EAAiB,EAAE,CACvE,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEhF,KAAK,UAAU,eAAe,CAC5B,OAAmB,EACnB,SAAiB,EACjB,YAAoB;IAEpB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAU;IACrC,MAAM,SAAS,GAAG,EAAE,CAAC;IAErB,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE;QACf,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAClC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE;QAClB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KACrC;IAED,OAAO,SAAS,CAAC;AACnB,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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"}
@@ -1,10 +1,10 @@
1
- import type { Stream } from "@libp2p/interface-connection";
2
- import { PeerId } from "@libp2p/interface-peer-id";
1
+ import type { Stream } from "@libp2p/interface/connection";
2
+ import { PeerId } from "@libp2p/interface/peer-id";
3
3
  import { MultiaddrInput } from "@multiformats/multiaddr";
4
- import type { IFilter, ILightPush, IRelay, IStore, Libp2p, Waku } from "@waku/interfaces";
4
+ import type { IFilter, ILightPush, IRelay, IStore, Libp2p, PubSubTopic, Waku } from "@waku/interfaces";
5
5
  import { Protocols } from "@waku/interfaces";
6
6
  import { ConnectionManager } from "./connection_manager.js";
7
- export declare const DefaultPingKeepAliveValueSecs = 0;
7
+ export declare const DefaultPingKeepAliveValueSecs: number;
8
8
  export declare const DefaultRelayKeepAliveValueSecs: number;
9
9
  export declare const DefaultUserAgent = "js-waku";
10
10
  export interface WakuOptions {
@@ -29,13 +29,14 @@ export interface WakuOptions {
29
29
  userAgent?: string;
30
30
  }
31
31
  export declare class WakuNode implements Waku {
32
+ readonly pubsubTopics: PubSubTopic[];
32
33
  libp2p: Libp2p;
33
34
  relay?: IRelay;
34
35
  store?: IStore;
35
36
  filter?: IFilter;
36
37
  lightPush?: ILightPush;
37
38
  connectionManager: ConnectionManager;
38
- constructor(options: WakuOptions, libp2p: Libp2p, store?: (libp2p: Libp2p) => IStore, lightPush?: (libp2p: Libp2p) => ILightPush, filter?: (libp2p: Libp2p) => IFilter, relay?: (libp2p: Libp2p) => IRelay);
39
+ constructor(options: WakuOptions, pubsubTopics: PubSubTopic[], libp2p: Libp2p, store?: (libp2p: Libp2p) => IStore, lightPush?: (libp2p: Libp2p) => ILightPush, filter?: (libp2p: Libp2p) => IFilter, relay?: (libp2p: Libp2p) => IRelay);
39
40
  /**
40
41
  * Dials to the provided peer.
41
42
  *
package/dist/lib/waku.js CHANGED
@@ -1,20 +1,22 @@
1
- import { isPeerId } from "@libp2p/interface-peer-id";
1
+ import { isPeerId } from "@libp2p/interface/peer-id";
2
2
  import { multiaddr } from "@multiformats/multiaddr";
3
3
  import { Protocols } from "@waku/interfaces";
4
4
  import debug from "debug";
5
5
  import { ConnectionManager } from "./connection_manager.js";
6
- export const DefaultPingKeepAliveValueSecs = 0;
6
+ export const DefaultPingKeepAliveValueSecs = 5 * 60;
7
7
  export const DefaultRelayKeepAliveValueSecs = 5 * 60;
8
8
  export const DefaultUserAgent = "js-waku";
9
9
  const log = debug("waku:waku");
10
10
  export class WakuNode {
11
+ pubsubTopics;
11
12
  libp2p;
12
13
  relay;
13
14
  store;
14
15
  filter;
15
16
  lightPush;
16
17
  connectionManager;
17
- constructor(options, libp2p, store, lightPush, filter, relay) {
18
+ constructor(options, pubsubTopics, libp2p, store, lightPush, filter, relay) {
19
+ this.pubsubTopics = pubsubTopics;
18
20
  this.libp2p = libp2p;
19
21
  if (store) {
20
22
  this.store = store(libp2p);
@@ -33,7 +35,7 @@ export class WakuNode {
33
35
  ? options.relayKeepAlive || DefaultRelayKeepAliveValueSecs
34
36
  : 0;
35
37
  const peerId = this.libp2p.peerId.toString();
36
- this.connectionManager = ConnectionManager.create(peerId, libp2p, { pingKeepAlive, relayKeepAlive }, this.relay);
38
+ this.connectionManager = ConnectionManager.create(peerId, libp2p, { pingKeepAlive, relayKeepAlive }, pubsubTopics, this.relay);
37
39
  log("Waku node created", peerId, `relay: ${!!this.relay}, store: ${!!this.store}, light push: ${!!this
38
40
  .lightPush}, filter: ${!!this.filter}`);
39
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"waku.js","sourceRoot":"","sources":["../../src/lib/waku.ts"],"names":[],"mappings":"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"}
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.22",
3
+ "version": "0.0.24",
4
4
  "description": "TypeScript implementation of the Waku v2 protocol",
5
5
  "types": "./dist/index.d.ts",
6
6
  "module": "./dist/index.js",
@@ -69,67 +69,51 @@
69
69
  "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build"
70
70
  },
71
71
  "engines": {
72
- "node": ">=16"
72
+ "node": ">=18"
73
73
  },
74
74
  "dependencies": {
75
- "@noble/hashes": "^1.3.0",
76
- "@waku/interfaces": "0.0.17",
75
+ "@noble/hashes": "^1.3.2",
76
+ "@waku/enr": "^0.0.18",
77
+ "@waku/interfaces": "0.0.19",
77
78
  "@waku/proto": "0.0.5",
78
- "@waku/utils": "0.0.10",
79
+ "@waku/utils": "0.0.12",
79
80
  "debug": "^4.3.4",
80
- "it-all": "^3.0.2",
81
+ "it-all": "^3.0.3",
81
82
  "it-length-prefixed": "^9.0.1",
82
83
  "it-pipe": "^3.0.1",
83
- "p-event": "^5.0.1",
84
+ "p-event": "^6.0.0",
84
85
  "uint8arraylist": "^2.4.3",
85
86
  "uuid": "^9.0.0"
86
87
  },
87
88
  "devDependencies": {
88
- "@libp2p/interface-connection": "^5.1.1",
89
- "@libp2p/interface-libp2p": "^3.2.0",
90
- "@libp2p/interface-peer-id": "^2.0.2",
91
- "@libp2p/interface-peer-store": "^2.0.4",
92
- "@libp2p/interface-registrar": "^2.0.12",
93
89
  "@multiformats/multiaddr": "^12.0.0",
94
- "@rollup/plugin-commonjs": "^24.0.1",
90
+ "@rollup/plugin-commonjs": "^25.0.4",
95
91
  "@rollup/plugin-json": "^6.0.0",
96
- "@rollup/plugin-node-resolve": "^15.0.2",
97
- "@types/chai": "^4.3.4",
98
- "@types/debug": "^4.1.7",
92
+ "@rollup/plugin-node-resolve": "^15.1.0",
93
+ "@types/chai": "^4.3.5",
94
+ "@types/debug": "^4.1.8",
99
95
  "@types/mocha": "^10.0.1",
100
- "@types/uuid": "^9.0.1",
96
+ "@types/uuid": "^9.0.3",
101
97
  "@waku/build-utils": "*",
102
98
  "chai": "^4.3.7",
103
- "cspell": "^6.31.1",
104
- "fast-check": "^3.8.1",
99
+ "cspell": "^7.3.2",
100
+ "fast-check": "^3.13.1",
105
101
  "ignore-loader": "^0.1.2",
106
102
  "isomorphic-fetch": "^3.0.0",
107
- "karma": "^6.4.1",
108
- "karma-chrome-launcher": "^3.2.0",
109
- "karma-mocha": "^2.0.1",
110
- "karma-webpack": "^5.0.0",
111
103
  "mocha": "^10.2.0",
112
104
  "npm-run-all": "^4.1.5",
113
- "prettier": "^2.8.8",
114
105
  "process": "^0.11.10",
115
- "puppeteer": "^20.4.0",
116
- "rollup": "^3.21.3",
117
- "ts-loader": "^9.4.2",
118
- "ts-node": "^10.9.1",
119
- "typescript": "^5.0.4"
106
+ "rollup": "^3.29.2"
120
107
  },
121
108
  "peerDependencies": {
122
109
  "@multiformats/multiaddr": "^12.0.0",
123
- "libp2p": "^0.45.9"
110
+ "libp2p": "^0.46.3"
124
111
  },
125
112
  "peerDependenciesMeta": {
126
113
  "@multiformats/multiaddr": {
127
114
  "optional": true
128
115
  }
129
116
  },
130
- "typedoc": {
131
- "entryPoint": "./src/index.ts"
132
- },
133
117
  "files": [
134
118
  "dist",
135
119
  "bundle",
package/src/index.ts CHANGED
@@ -4,7 +4,7 @@ export { createEncoder, createDecoder } from "./lib/message/version_0.js";
4
4
  export type {
5
5
  Encoder,
6
6
  Decoder,
7
- DecodedMessage,
7
+ DecodedMessage
8
8
  } from "./lib/message/version_0.js";
9
9
  export * as message from "./lib/message/index.js";
10
10
 
@@ -12,21 +12,18 @@ export * as waku from "./lib/waku.js";
12
12
  export { WakuNode, WakuOptions } from "./lib/waku.js";
13
13
 
14
14
  export * as waku_filter from "./lib/filter/index.js";
15
- export { wakuFilter } from "./lib/filter/index.js";
15
+ export { wakuFilter, FilterCodecs } from "./lib/filter/index.js";
16
16
 
17
17
  export * as waku_light_push from "./lib/light_push/index.js";
18
- export { wakuLightPush, LightPushCodec } from "./lib/light_push/index.js";
18
+ export { wakuLightPush } from "./lib/light_push/index.js";
19
19
 
20
20
  export * as waku_store from "./lib/store/index.js";
21
- export {
22
- PageDirection,
23
- wakuStore,
24
- StoreCodec,
25
- createCursor,
26
- } from "./lib/store/index.js";
21
+
22
+ export { PageDirection, wakuStore, createCursor } from "./lib/store/index.js";
27
23
 
28
24
  export { waitForRemotePeer } from "./lib/wait_for_remote_peer.js";
29
25
 
30
26
  export { ConnectionManager } from "./lib/connection_manager.js";
31
27
 
32
28
  export { KeepAliveManager } from "./lib/keep_alive_manager.js";
29
+ export { StreamManager } from "./lib/stream_manager.js";