@waku/core 0.0.23 → 0.0.25-a42b7be.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/bundle/{base_protocol-84d9b670.js → base_protocol-4bcf7514.js} +194 -134
  3. package/bundle/{browser-bde977a3.js → browser-90197c87.js} +26 -1
  4. package/bundle/index-27b91e3b.js +31 -0
  5. package/bundle/index.js +19384 -2421
  6. package/bundle/lib/base_protocol.js +3 -2
  7. package/bundle/lib/message/version_0.js +3 -2
  8. package/bundle/lib/predefined_bootstrap_nodes.js +2 -0
  9. package/bundle/{version_0-74b4b9db.js → version_0-2f1176e3.js} +36 -24
  10. package/dist/.tsbuildinfo +1 -1
  11. package/dist/lib/connection_manager.d.ts +17 -4
  12. package/dist/lib/connection_manager.js +111 -45
  13. package/dist/lib/connection_manager.js.map +1 -1
  14. package/dist/lib/filter/index.js +53 -37
  15. package/dist/lib/filter/index.js.map +1 -1
  16. package/dist/lib/keep_alive_manager.d.ts +1 -0
  17. package/dist/lib/keep_alive_manager.js +42 -18
  18. package/dist/lib/keep_alive_manager.js.map +1 -1
  19. package/dist/lib/light_push/index.js +60 -38
  20. package/dist/lib/light_push/index.js.map +1 -1
  21. package/dist/lib/light_push/push_rpc.d.ts +1 -1
  22. package/dist/lib/light_push/push_rpc.js +2 -2
  23. package/dist/lib/message/version_0.d.ts +13 -13
  24. package/dist/lib/message/version_0.js +22 -20
  25. package/dist/lib/message/version_0.js.map +1 -1
  26. package/dist/lib/store/history_rpc.d.ts +1 -1
  27. package/dist/lib/store/history_rpc.js +1 -1
  28. package/dist/lib/store/index.d.ts +1 -1
  29. package/dist/lib/store/index.js +43 -17
  30. package/dist/lib/store/index.js.map +1 -1
  31. package/dist/lib/stream_manager.d.ts +1 -1
  32. package/dist/lib/stream_manager.js +8 -5
  33. package/dist/lib/stream_manager.js.map +1 -1
  34. package/dist/lib/wait_for_remote_peer.d.ts +2 -2
  35. package/dist/lib/wait_for_remote_peer.js +13 -11
  36. package/dist/lib/wait_for_remote_peer.js.map +1 -1
  37. package/dist/lib/waku.d.ts +4 -3
  38. package/dist/lib/waku.js +13 -11
  39. package/dist/lib/waku.js.map +1 -1
  40. package/package.json +1 -137
  41. package/src/lib/connection_manager.ts +156 -51
  42. package/src/lib/filter/index.ts +76 -40
  43. package/src/lib/keep_alive_manager.ts +53 -20
  44. package/src/lib/light_push/index.ts +74 -38
  45. package/src/lib/light_push/push_rpc.ts +2 -2
  46. package/src/lib/message/version_0.ts +25 -17
  47. package/src/lib/store/history_rpc.ts +2 -2
  48. package/src/lib/store/index.ts +60 -23
  49. package/src/lib/stream_manager.ts +12 -7
  50. package/src/lib/wait_for_remote_peer.ts +13 -11
  51. package/src/lib/waku.ts +12 -9
  52. package/dist/lib/push_or_init_map.d.ts +0 -1
  53. package/dist/lib/push_or_init_map.js +0 -9
  54. package/dist/lib/push_or_init_map.js.map +0 -1
  55. package/src/lib/push_or_init_map.ts +0 -13
@@ -1,8 +1,8 @@
1
+ import { Logger } from "@waku/utils";
1
2
  import { utf8ToBytes } from "@waku/utils/bytes";
2
- import debug from "debug";
3
3
  import { createEncoder } from "./message/version_0.js";
4
4
  export const RelayPingContentTopic = "/relay-ping/1/ping/null";
5
- const log = debug("waku:keep-alive");
5
+ const log = new Logger("keep-alive");
6
6
  export class KeepAliveManager {
7
7
  pingKeepAliveTimers;
8
8
  relayKeepAliveTimers;
@@ -19,14 +19,25 @@ export class KeepAliveManager {
19
19
  this.stop(peerId);
20
20
  const { pingKeepAlive: pingPeriodSecs, relayKeepAlive: relayPeriodSecs } = this.options;
21
21
  const peerIdStr = peerId.toString();
22
+ // Ping the peer every pingPeriodSecs seconds
23
+ // if pingPeriodSecs is 0, don't ping the peer
22
24
  if (pingPeriodSecs !== 0) {
23
25
  const interval = setInterval(() => {
24
26
  void (async () => {
27
+ let ping;
25
28
  try {
26
29
  // ping the peer for keep alive
27
30
  // also update the peer store with the latency
28
- const ping = await libp2pPing.ping(peerId);
29
- log(`Ping succeeded (${peerIdStr})`, ping);
31
+ try {
32
+ ping = await libp2pPing.ping(peerId);
33
+ log.info(`Ping succeeded (${peerIdStr})`, ping);
34
+ }
35
+ catch (error) {
36
+ log.error(`Ping failed for peer (${peerIdStr}).
37
+ Next ping will be attempted in ${pingPeriodSecs} seconds.
38
+ `);
39
+ return;
40
+ }
30
41
  try {
31
42
  await peerStore.patch(peerId, {
32
43
  metadata: {
@@ -35,11 +46,11 @@ export class KeepAliveManager {
35
46
  });
36
47
  }
37
48
  catch (e) {
38
- log("Failed to update ping", e);
49
+ log.error("Failed to update ping", e);
39
50
  }
40
51
  }
41
52
  catch (e) {
42
- log(`Ping failed (${peerIdStr})`, e);
53
+ log.error(`Ping failed (${peerIdStr})`, e);
43
54
  }
44
55
  })();
45
56
  }, pingPeriodSecs * 1000);
@@ -47,17 +58,8 @@ export class KeepAliveManager {
47
58
  }
48
59
  const relay = this.relay;
49
60
  if (relay && relayPeriodSecs !== 0) {
50
- const encoder = createEncoder({
51
- contentTopic: RelayPingContentTopic,
52
- ephemeral: true
53
- });
54
- const interval = setInterval(() => {
55
- log("Sending Waku Relay ping message");
56
- relay
57
- .send(encoder, { payload: new Uint8Array([1]) })
58
- .catch((e) => log("Failed to send relay ping", e));
59
- }, relayPeriodSecs * 1000);
60
- this.relayKeepAliveTimers.set(peerId, interval);
61
+ const intervals = this.scheduleRelayPings(relay, relayPeriodSecs, peerId.toString());
62
+ this.relayKeepAliveTimers.set(peerId, intervals);
61
63
  }
62
64
  }
63
65
  stop(peerId) {
@@ -67,7 +69,7 @@ export class KeepAliveManager {
67
69
  this.pingKeepAliveTimers.delete(peerIdStr);
68
70
  }
69
71
  if (this.relayKeepAliveTimers.has(peerId)) {
70
- clearInterval(this.relayKeepAliveTimers.get(peerId));
72
+ this.relayKeepAliveTimers.get(peerId)?.map(clearInterval);
71
73
  this.relayKeepAliveTimers.delete(peerId);
72
74
  }
73
75
  }
@@ -81,5 +83,27 @@ export class KeepAliveManager {
81
83
  this.pingKeepAliveTimers.clear();
82
84
  this.relayKeepAliveTimers.clear();
83
85
  }
86
+ scheduleRelayPings(relay, relayPeriodSecs, peerIdStr) {
87
+ // send a ping message to each PubSubTopic the peer is part of
88
+ const intervals = [];
89
+ for (const topic of relay.pubsubTopics) {
90
+ const meshPeers = relay.getMeshPeers(topic);
91
+ if (!meshPeers.includes(peerIdStr))
92
+ continue;
93
+ const encoder = createEncoder({
94
+ pubsubTopic: topic,
95
+ contentTopic: RelayPingContentTopic,
96
+ ephemeral: true
97
+ });
98
+ const interval = setInterval(() => {
99
+ log.info("Sending Waku Relay ping message");
100
+ relay
101
+ .send(encoder, { payload: new Uint8Array([1]) })
102
+ .catch((e) => log.error("Failed to send relay ping", e));
103
+ }, relayPeriodSecs * 1000);
104
+ intervals.push(interval);
105
+ }
106
+ return intervals;
107
+ }
84
108
  }
85
109
  //# sourceMappingURL=keep_alive_manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keep_alive_manager.js","sourceRoot":"","sources":["../../src/lib/keep_alive_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keep_alive_manager.js","sourceRoot":"","sources":["../../src/lib/keep_alive_manager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { SendError } from "@waku/interfaces";
2
2
  import { PushResponse } from "@waku/proto";
3
- import { isSizeValid } from "@waku/utils";
4
- import debug from "debug";
3
+ import { ensurePubsubTopicIsConfigured, isMessageSizeUnderCap } from "@waku/utils";
4
+ import { Logger } from "@waku/utils";
5
5
  import all from "it-all";
6
6
  import * as lp from "it-length-prefixed";
7
7
  import { pipe } from "it-pipe";
@@ -9,38 +9,42 @@ import { Uint8ArrayList } from "uint8arraylist";
9
9
  import { BaseProtocol } from "../base_protocol.js";
10
10
  import { DefaultPubSubTopic } from "../constants.js";
11
11
  import { PushRpc } from "./push_rpc.js";
12
- const log = debug("waku:light-push");
12
+ const log = new Logger("light-push");
13
13
  export const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
14
14
  export { PushResponse };
15
15
  /**
16
16
  * Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
17
17
  */
18
18
  class LightPush extends BaseProtocol {
19
- options;
19
+ pubsubTopics;
20
20
  NUM_PEERS_PROTOCOL = 1;
21
21
  constructor(libp2p, options) {
22
22
  super(LightPushCodec, libp2p.components);
23
- this.options = options || {};
23
+ this.pubsubTopics = options?.pubsubTopics ?? [DefaultPubSubTopic];
24
24
  }
25
- async preparePushMessage(encoder, message, pubSubTopic) {
25
+ async preparePushMessage(encoder, message, pubsubTopic) {
26
26
  try {
27
- if (!isSizeValid(message.payload)) {
28
- log("Failed to send waku light push: message is bigger than 1MB");
27
+ if (!message.payload || message.payload.length === 0) {
28
+ log.error("Failed to send waku light push: payload is empty");
29
+ return { query: null, error: SendError.EMPTY_PAYLOAD };
30
+ }
31
+ if (!(await isMessageSizeUnderCap(encoder, message))) {
32
+ log.error("Failed to send waku light push: message is bigger than 1MB");
29
33
  return { query: null, error: SendError.SIZE_TOO_BIG };
30
34
  }
31
35
  const protoMessage = await encoder.toProtoObj(message);
32
36
  if (!protoMessage) {
33
- log("Failed to encode to protoMessage, aborting push");
37
+ log.error("Failed to encode to protoMessage, aborting push");
34
38
  return {
35
39
  query: null,
36
40
  error: SendError.ENCODE_FAILED
37
41
  };
38
42
  }
39
- const query = PushRpc.createRequest(protoMessage, pubSubTopic);
43
+ const query = PushRpc.createRequest(protoMessage, pubsubTopic);
40
44
  return { query, error: null };
41
45
  }
42
46
  catch (error) {
43
- log("Failed to prepare push message", error);
47
+ log.error("Failed to prepare push message", error);
44
48
  return {
45
49
  query: null,
46
50
  error: SendError.GENERIC_FAIL
@@ -48,49 +52,67 @@ class LightPush extends BaseProtocol {
48
52
  }
49
53
  }
50
54
  async send(encoder, message) {
51
- const { pubSubTopic = DefaultPubSubTopic } = this.options;
55
+ const { pubsubTopic } = encoder;
56
+ ensurePubsubTopicIsConfigured(pubsubTopic, this.pubsubTopics);
52
57
  const recipients = [];
53
- const { query, error: preparationError } = await this.preparePushMessage(encoder, message, pubSubTopic);
58
+ const { query, error: preparationError } = await this.preparePushMessage(encoder, message, pubsubTopic);
54
59
  if (preparationError || !query) {
55
60
  return {
56
61
  recipients,
57
62
  errors: [preparationError]
58
63
  };
59
64
  }
65
+ //TODO: get a relevant peer for the topic/shard
60
66
  const peers = await this.getPeers({
61
67
  maxBootstrapPeers: 1,
62
68
  numPeers: this.NUM_PEERS_PROTOCOL
63
69
  });
70
+ if (!peers.length) {
71
+ return {
72
+ recipients,
73
+ errors: [SendError.NO_PEER_AVAILABLE]
74
+ };
75
+ }
64
76
  const promises = peers.map(async (peer) => {
65
- let error;
66
- const stream = await this.getStream(peer);
77
+ let stream;
67
78
  try {
68
- const res = await pipe([query.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
69
- try {
70
- const bytes = new Uint8ArrayList();
71
- res.forEach((chunk) => {
72
- bytes.append(chunk);
73
- });
74
- const response = PushRpc.decode(bytes).response;
75
- if (response?.isSuccess) {
76
- recipients.some((recipient) => recipient.equals(peer.id)) ||
77
- recipients.push(peer.id);
78
- }
79
- else {
80
- log("No response in PushRPC");
81
- error = SendError.NO_RPC_RESPONSE;
82
- }
83
- }
84
- catch (err) {
85
- log("Failed to decode push reply", err);
86
- error = SendError.DECODE_FAILED;
87
- }
79
+ stream = await this.getStream(peer);
88
80
  }
89
81
  catch (err) {
90
- log("Failed to send waku light push request", err);
91
- error = SendError.GENERIC_FAIL;
82
+ log.error(`Failed to get a stream for remote peer${peer.id.toString()}`, err);
83
+ return { recipients, error: SendError.REMOTE_PEER_FAULT };
84
+ }
85
+ let res;
86
+ try {
87
+ res = await pipe([query.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
88
+ }
89
+ catch (err) {
90
+ log.error("Failed to send waku light push request", err);
91
+ return { recipients, error: SendError.GENERIC_FAIL };
92
+ }
93
+ const bytes = new Uint8ArrayList();
94
+ res.forEach((chunk) => {
95
+ bytes.append(chunk);
96
+ });
97
+ let response;
98
+ try {
99
+ response = PushRpc.decode(bytes).response;
100
+ }
101
+ catch (err) {
102
+ log.error("Failed to decode push reply", err);
103
+ return { recipients, error: SendError.DECODE_FAILED };
104
+ }
105
+ if (!response) {
106
+ log.error("Remote peer fault: No response in PushRPC");
107
+ return { recipients, error: SendError.REMOTE_PEER_FAULT };
108
+ }
109
+ if (!response.isSuccess) {
110
+ log.error("Remote peer rejected the message: ", response.info);
111
+ return { recipients, error: SendError.REMOTE_PEER_REJECTED };
92
112
  }
93
- return { recipients, error };
113
+ recipients.some((recipient) => recipient.equals(peer.id)) ||
114
+ recipients.push(peer.id);
115
+ return { recipients };
94
116
  });
95
117
  const results = await Promise.allSettled(promises);
96
118
  const errors = results
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { Uint8ArrayList } from "uint8arraylist";
3
3
  export declare class PushRpc {
4
4
  proto: proto.PushRpc;
5
5
  constructor(proto: proto.PushRpc);
6
- static createRequest(message: proto.WakuMessage, pubSubTopic: string): PushRpc;
6
+ static createRequest(message: proto.WakuMessage, pubsubTopic: string): PushRpc;
7
7
  static decode(bytes: Uint8ArrayList): PushRpc;
8
8
  encode(): Uint8Array;
9
9
  get query(): proto.PushRequest | undefined;
@@ -5,12 +5,12 @@ export class PushRpc {
5
5
  constructor(proto) {
6
6
  this.proto = proto;
7
7
  }
8
- static createRequest(message, pubSubTopic) {
8
+ static createRequest(message, pubsubTopic) {
9
9
  return new PushRpc({
10
10
  requestId: uuid(),
11
11
  request: {
12
12
  message: message,
13
- pubsubTopic: pubSubTopic
13
+ pubsubTopic: pubsubTopic
14
14
  },
15
15
  response: undefined
16
16
  });
@@ -1,11 +1,11 @@
1
- import type { EncoderOptions, IDecodedMessage, IDecoder, IEncoder, IMessage, IMetaSetter, IProtoMessage, IRateLimitProof } from "@waku/interfaces";
1
+ import type { EncoderOptions, IDecodedMessage, IDecoder, IEncoder, IMessage, IMetaSetter, IProtoMessage, IRateLimitProof, PubSubTopic } from "@waku/interfaces";
2
2
  import { proto_message as proto } from "@waku/proto";
3
3
  export declare const Version = 0;
4
4
  export { proto };
5
5
  export declare class DecodedMessage implements IDecodedMessage {
6
- pubSubTopic: string;
6
+ pubsubTopic: string;
7
7
  protected proto: proto.WakuMessage;
8
- constructor(pubSubTopic: string, proto: proto.WakuMessage);
8
+ constructor(pubsubTopic: string, proto: proto.WakuMessage);
9
9
  get ephemeral(): boolean;
10
10
  get payload(): Uint8Array;
11
11
  get contentTopic(): string;
@@ -18,36 +18,36 @@ export declare class DecodedMessage implements IDecodedMessage {
18
18
  export declare class Encoder implements IEncoder {
19
19
  contentTopic: string;
20
20
  ephemeral: boolean;
21
+ pubsubTopic: PubSubTopic;
21
22
  metaSetter?: IMetaSetter | undefined;
22
- constructor(contentTopic: string, ephemeral?: boolean, metaSetter?: IMetaSetter | undefined);
23
+ constructor(contentTopic: string, ephemeral: boolean, pubsubTopic: PubSubTopic, metaSetter?: IMetaSetter | undefined);
23
24
  toWire(message: IMessage): Promise<Uint8Array>;
24
25
  toProtoObj(message: IMessage): Promise<IProtoMessage>;
25
26
  }
26
27
  /**
27
28
  * Creates an encoder that encode messages without Waku level encryption or signature.
28
29
  *
29
- * An encoder is used to encode messages in the [`14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
30
+ * An encoder is used to encode messages in the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
30
31
  * format to be sent over the Waku network. The resulting encoder can then be
31
- * pass to { @link @waku/interfaces.LightPush.push } or
32
- * { @link @waku/interfaces.Relay.send } to automatically encode outgoing
32
+ * pass to { @link @waku/interfaces!ISender.send } to automatically encode outgoing
33
33
  * messages.
34
34
  */
35
- export declare function createEncoder({ contentTopic, ephemeral, metaSetter }: EncoderOptions): Encoder;
35
+ export declare function createEncoder({ pubsubTopic, contentTopic, ephemeral, metaSetter }: EncoderOptions): Encoder;
36
36
  export declare class Decoder implements IDecoder<DecodedMessage> {
37
+ pubsubTopic: PubSubTopic;
37
38
  contentTopic: string;
38
- constructor(contentTopic: string);
39
+ constructor(pubsubTopic: PubSubTopic, contentTopic: string);
39
40
  fromWireToProtoObj(bytes: Uint8Array): Promise<IProtoMessage | undefined>;
40
- fromProtoObj(pubSubTopic: string, proto: IProtoMessage): Promise<DecodedMessage | undefined>;
41
+ fromProtoObj(pubsubTopic: string, proto: IProtoMessage): Promise<DecodedMessage | undefined>;
41
42
  }
42
43
  /**
43
44
  * Creates a decoder that decode messages without Waku level encryption.
44
45
  *
45
46
  * A decoder is used to decode messages from the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
46
47
  * format when received from the Waku network. The resulting decoder can then be
47
- * pass to { @link @waku/interfaces.Filter.subscribe } or
48
- * { @link @waku/interfaces.Relay.subscribe } to automatically decode incoming
48
+ * pass to { @link @waku/interfaces!IReceiver.subscribe } to automatically decode incoming
49
49
  * messages.
50
50
  *
51
51
  * @param contentTopic The resulting decoder will only decode messages with this content topic.
52
52
  */
53
- export declare function createDecoder(contentTopic: string): Decoder;
53
+ export declare function createDecoder(contentTopic: string, pubsubTopic?: PubSubTopic): Decoder;
@@ -1,14 +1,15 @@
1
1
  import { proto_message as proto } from "@waku/proto";
2
- import debug from "debug";
3
- const log = debug("waku:message:version-0");
2
+ import { Logger } from "@waku/utils";
3
+ import { DefaultPubSubTopic } from "../constants.js";
4
+ const log = new Logger("message:version-0");
4
5
  const OneMillion = BigInt(1000000);
5
6
  export const Version = 0;
6
7
  export { proto };
7
8
  export class DecodedMessage {
8
- pubSubTopic;
9
+ pubsubTopic;
9
10
  proto;
10
- constructor(pubSubTopic, proto) {
11
- this.pubSubTopic = pubSubTopic;
11
+ constructor(pubsubTopic, proto) {
12
+ this.pubsubTopic = pubsubTopic;
12
13
  this.proto = proto;
13
14
  }
14
15
  get ephemeral() {
@@ -53,10 +54,12 @@ export class DecodedMessage {
53
54
  export class Encoder {
54
55
  contentTopic;
55
56
  ephemeral;
57
+ pubsubTopic;
56
58
  metaSetter;
57
- constructor(contentTopic, ephemeral = false, metaSetter) {
59
+ constructor(contentTopic, ephemeral = false, pubsubTopic, metaSetter) {
58
60
  this.contentTopic = contentTopic;
59
61
  this.ephemeral = ephemeral;
62
+ this.pubsubTopic = pubsubTopic;
60
63
  this.metaSetter = metaSetter;
61
64
  if (!contentTopic || contentTopic === "") {
62
65
  throw new Error("Content topic must be specified");
@@ -86,18 +89,19 @@ export class Encoder {
86
89
  /**
87
90
  * Creates an encoder that encode messages without Waku level encryption or signature.
88
91
  *
89
- * An encoder is used to encode messages in the [`14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
92
+ * An encoder is used to encode messages in the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
90
93
  * format to be sent over the Waku network. The resulting encoder can then be
91
- * pass to { @link @waku/interfaces.LightPush.push } or
92
- * { @link @waku/interfaces.Relay.send } to automatically encode outgoing
94
+ * pass to { @link @waku/interfaces!ISender.send } to automatically encode outgoing
93
95
  * messages.
94
96
  */
95
- export function createEncoder({ contentTopic, ephemeral, metaSetter }) {
96
- return new Encoder(contentTopic, ephemeral, metaSetter);
97
+ export function createEncoder({ pubsubTopic = DefaultPubSubTopic, contentTopic, ephemeral, metaSetter }) {
98
+ return new Encoder(contentTopic, ephemeral, pubsubTopic, metaSetter);
97
99
  }
98
100
  export class Decoder {
101
+ pubsubTopic;
99
102
  contentTopic;
100
- constructor(contentTopic) {
103
+ constructor(pubsubTopic, contentTopic) {
104
+ this.pubsubTopic = pubsubTopic;
101
105
  this.contentTopic = contentTopic;
102
106
  if (!contentTopic || contentTopic === "") {
103
107
  throw new Error("Content topic must be specified");
@@ -105,7 +109,6 @@ export class Decoder {
105
109
  }
106
110
  fromWireToProtoObj(bytes) {
107
111
  const protoMessage = proto.WakuMessage.decode(bytes);
108
- log("Message decoded", protoMessage);
109
112
  return Promise.resolve({
110
113
  payload: protoMessage.payload,
111
114
  contentTopic: protoMessage.contentTopic,
@@ -116,14 +119,14 @@ export class Decoder {
116
119
  ephemeral: protoMessage.ephemeral ?? false
117
120
  });
118
121
  }
119
- async fromProtoObj(pubSubTopic, proto) {
122
+ async fromProtoObj(pubsubTopic, proto) {
120
123
  // https://rfc.vac.dev/spec/14/
121
124
  // > If omitted, the value SHOULD be interpreted as version 0.
122
125
  if (proto.version ?? 0 !== Version) {
123
- log("Failed to decode due to incorrect version, expected:", Version, ", actual:", proto.version);
126
+ log.error("Failed to decode due to incorrect version, expected:", Version, ", actual:", proto.version);
124
127
  return Promise.resolve(undefined);
125
128
  }
126
- return new DecodedMessage(pubSubTopic, proto);
129
+ return new DecodedMessage(pubsubTopic, proto);
127
130
  }
128
131
  }
129
132
  /**
@@ -131,13 +134,12 @@ export class Decoder {
131
134
  *
132
135
  * A decoder is used to decode messages from the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
133
136
  * format when received from the Waku network. The resulting decoder can then be
134
- * pass to { @link @waku/interfaces.Filter.subscribe } or
135
- * { @link @waku/interfaces.Relay.subscribe } to automatically decode incoming
137
+ * pass to { @link @waku/interfaces!IReceiver.subscribe } to automatically decode incoming
136
138
  * messages.
137
139
  *
138
140
  * @param contentTopic The resulting decoder will only decode messages with this content topic.
139
141
  */
140
- export function createDecoder(contentTopic) {
141
- return new Decoder(contentTopic);
142
+ export function createDecoder(contentTopic, pubsubTopic = DefaultPubSubTopic) {
143
+ return new Decoder(pubsubTopic, contentTopic);
142
144
  }
143
145
  //# sourceMappingURL=version_0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,mBAAmB,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;IAEhB;IACG;IAFZ,YACS,WAAmB,EAChB,KAAwB;QAD3B,gBAAW,GAAX,WAAW,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAmB;IACjC,CAAC;IAEJ,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;IACA;IAJT,YACS,YAAoB,EACpB,YAAqB,KAAK,EAC1B,WAAwB,EACxB,UAAwB;QAHxB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAiB;QAC1B,gBAAW,GAAX,WAAW,CAAa;QACxB,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;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,WAAW,GAAG,kBAAkB,EAChC,YAAY,EACZ,SAAS,EACT,UAAU,EACK;IACf,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,OAAO,OAAO;IAET;IACA;IAFT,YACS,WAAwB,EACxB,YAAoB;QADpB,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAQ;QAE3B,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,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,CAAC,KAAK,CACP,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;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,YAAoB,EACpB,cAA2B,kBAAkB;IAE7C,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC"}
@@ -6,7 +6,7 @@ export declare enum PageDirection {
6
6
  }
7
7
  export interface Params {
8
8
  contentTopics: string[];
9
- pubSubTopic: string;
9
+ pubsubTopic: string;
10
10
  pageDirection: PageDirection;
11
11
  pageSize: number;
12
12
  startTime?: Date;
@@ -42,7 +42,7 @@ export class HistoryRpc {
42
42
  return new HistoryRpc({
43
43
  requestId: uuid(),
44
44
  query: {
45
- pubsubTopic: params.pubSubTopic,
45
+ pubsubTopic: params.pubsubTopic,
46
46
  contentFilters,
47
47
  pagingInfo,
48
48
  startTime,
@@ -36,5 +36,5 @@ export interface QueryOptions {
36
36
  */
37
37
  cursor?: Cursor;
38
38
  }
39
- export declare function createCursor(message: IDecodedMessage, pubsubTopic?: string): Promise<Cursor>;
39
+ export declare function createCursor(message: IDecodedMessage): Promise<Cursor>;
40
40
  export declare function wakuStore(init?: Partial<ProtocolCreateOptions>): (libp2p: Libp2p) => IStore;