@waku/core 0.0.10 → 0.0.11

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 (86) hide show
  1. package/CHANGELOG.md +66 -1
  2. package/bundle/browser-2f1afe46.js +726 -0
  3. package/bundle/index.js +9166 -12074
  4. package/bundle/lib/base_protocol.js +108 -0
  5. package/bundle/lib/message/topic_only_message.js +3 -2
  6. package/bundle/lib/message/version_0.js +3 -2
  7. package/bundle/peer_exchange-1229c8b0.js +4302 -0
  8. package/bundle/{topic_only_message-b1eddea1.js → topic_only_message-e8406994.js} +12 -8
  9. package/bundle/{version_0-862a05e0.js → version_0-e9a6cfb0.js} +35 -35
  10. package/dist/.tsbuildinfo +1 -0
  11. package/dist/index.d.ts +4 -1
  12. package/dist/index.js +3 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/base_protocol.d.ts +21 -0
  15. package/dist/lib/base_protocol.js +33 -0
  16. package/dist/lib/base_protocol.js.map +1 -0
  17. package/dist/lib/connection_manager.d.ts +31 -0
  18. package/dist/lib/connection_manager.js +146 -0
  19. package/dist/lib/connection_manager.js.map +1 -0
  20. package/dist/lib/filter/filter_rpc.d.ts +8 -8
  21. package/dist/lib/filter/filter_rpc.js +6 -6
  22. package/dist/lib/filter/index.d.ts +5 -22
  23. package/dist/lib/filter/index.js +31 -86
  24. package/dist/lib/filter/index.js.map +1 -1
  25. package/dist/lib/group_by.d.ts +1 -1
  26. package/dist/lib/group_by.js.map +1 -1
  27. package/dist/lib/keep_alive_manager.d.ts +17 -0
  28. package/dist/lib/keep_alive_manager.js +62 -0
  29. package/dist/lib/keep_alive_manager.js.map +1 -0
  30. package/dist/lib/light_push/index.d.ts +3 -19
  31. package/dist/lib/light_push/index.js +13 -39
  32. package/dist/lib/light_push/index.js.map +1 -1
  33. package/dist/lib/light_push/push_rpc.d.ts +5 -5
  34. package/dist/lib/light_push/push_rpc.js +6 -6
  35. package/dist/lib/message/topic_only_message.d.ts +5 -3
  36. package/dist/lib/message/topic_only_message.js +8 -5
  37. package/dist/lib/message/topic_only_message.js.map +1 -1
  38. package/dist/lib/message/version_0.d.ts +12 -12
  39. package/dist/lib/message/version_0.js +29 -30
  40. package/dist/lib/message/version_0.js.map +1 -1
  41. package/dist/lib/predefined_bootstrap_nodes.js +1 -1
  42. package/dist/lib/predefined_bootstrap_nodes.js.map +1 -1
  43. package/dist/lib/relay/index.d.ts +4 -18
  44. package/dist/lib/relay/index.js +47 -26
  45. package/dist/lib/relay/index.js.map +1 -1
  46. package/dist/lib/relay/message_validator.d.ts +4 -0
  47. package/dist/lib/relay/message_validator.js +25 -0
  48. package/dist/lib/relay/message_validator.js.map +1 -0
  49. package/dist/lib/store/history_rpc.d.ts +4 -4
  50. package/dist/lib/store/history_rpc.js +9 -9
  51. package/dist/lib/store/history_rpc.js.map +1 -1
  52. package/dist/lib/store/index.d.ts +4 -25
  53. package/dist/lib/store/index.js +20 -37
  54. package/dist/lib/store/index.js.map +1 -1
  55. package/dist/lib/to_proto_message.js +3 -2
  56. package/dist/lib/to_proto_message.js.map +1 -1
  57. package/dist/lib/wait_for_remote_peer.js +12 -23
  58. package/dist/lib/wait_for_remote_peer.js.map +1 -1
  59. package/dist/lib/waku.d.ts +8 -15
  60. package/dist/lib/waku.js +34 -97
  61. package/dist/lib/waku.js.map +1 -1
  62. package/package.json +50 -61
  63. package/src/index.ts +11 -3
  64. package/src/lib/base_protocol.ts +47 -0
  65. package/src/lib/connection_manager.ts +220 -0
  66. package/src/lib/filter/filter_rpc.ts +10 -10
  67. package/src/lib/filter/index.ts +52 -147
  68. package/src/lib/group_by.ts +1 -1
  69. package/src/lib/keep_alive_manager.ts +89 -0
  70. package/src/lib/light_push/index.ts +17 -78
  71. package/src/lib/light_push/push_rpc.ts +9 -9
  72. package/src/lib/message/topic_only_message.ts +11 -5
  73. package/src/lib/message/version_0.ts +42 -37
  74. package/src/lib/predefined_bootstrap_nodes.ts +1 -1
  75. package/src/lib/relay/index.ts +77 -52
  76. package/src/lib/relay/message_validator.ts +35 -0
  77. package/src/lib/store/history_rpc.ts +12 -12
  78. package/src/lib/store/index.ts +30 -84
  79. package/src/lib/to_proto_message.ts +3 -2
  80. package/src/lib/wait_for_remote_peer.ts +13 -29
  81. package/src/lib/waku.ts +54 -136
  82. package/bundle/peer_exchange-df95c3a7.js +0 -11801
  83. package/dist/lib/random_subset.d.ts +0 -4
  84. package/dist/lib/random_subset.js +0 -25
  85. package/dist/lib/random_subset.js.map +0 -1
  86. package/src/lib/random_subset.ts +0 -30
@@ -0,0 +1,25 @@
1
+ import { TopicValidatorResult } from "@libp2p/interface-pubsub";
2
+ import { proto_message as proto } from "@waku/proto";
3
+ import debug from "debug";
4
+ const log = debug("waku:relay");
5
+ export function messageValidator(peer, message) {
6
+ const startTime = performance.now();
7
+ log(`validating message from ${peer} received on ${message.topic}`);
8
+ let result = TopicValidatorResult.Accept;
9
+ try {
10
+ const protoMessage = proto.WakuMessage.decode(message.data);
11
+ if (!protoMessage.contentTopic ||
12
+ !protoMessage.contentTopic.length ||
13
+ !protoMessage.payload ||
14
+ !protoMessage.payload.length) {
15
+ result = TopicValidatorResult.Reject;
16
+ }
17
+ }
18
+ catch (e) {
19
+ result = TopicValidatorResult.Reject;
20
+ }
21
+ const endTime = performance.now();
22
+ log(`Validation time (must be <100ms): ${endTime - startTime}ms`);
23
+ return result;
24
+ }
25
+ //# sourceMappingURL=message_validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_validator.js","sourceRoot":"","sources":["../../../src/lib/relay/message_validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AAEhC,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAgB;IAEhB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,GAAG,CAAC,2BAA2B,IAAI,gBAAgB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAEzC,IAAI;QACF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5D,IACE,CAAC,YAAY,CAAC,YAAY;YAC1B,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,YAAY,CAAC,OAAO;YACrB,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAC5B;YACA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;SACtC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;KACtC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,GAAG,CAAC,qCAAqC,OAAO,GAAG,SAAS,IAAI,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -13,15 +13,15 @@ export interface Params {
13
13
  endTime?: Date;
14
14
  cursor?: proto.Index;
15
15
  }
16
- export declare class HistoryRPC {
17
- readonly proto: proto.HistoryRPC;
16
+ export declare class HistoryRpc {
17
+ readonly proto: proto.HistoryRpc;
18
18
  private constructor();
19
19
  get query(): proto.HistoryQuery | undefined;
20
20
  get response(): proto.HistoryResponse | undefined;
21
21
  /**
22
22
  * Create History Query.
23
23
  */
24
- static createQuery(params: Params): HistoryRPC;
25
- decode(bytes: Uint8ArrayList): HistoryRPC;
24
+ static createQuery(params: Params): HistoryRpc;
25
+ decode(bytes: Uint8ArrayList): HistoryRpc;
26
26
  encode(): Uint8Array;
27
27
  }
@@ -6,7 +6,7 @@ export var PageDirection;
6
6
  PageDirection["BACKWARD"] = "backward";
7
7
  PageDirection["FORWARD"] = "forward";
8
8
  })(PageDirection || (PageDirection = {}));
9
- export class HistoryRPC {
9
+ export class HistoryRpc {
10
10
  constructor(proto) {
11
11
  this.proto = proto;
12
12
  }
@@ -38,10 +38,10 @@ export class HistoryRPC {
38
38
  // milliseconds 10^-3 to nanoseconds 10^-9
39
39
  endTime = BigInt(params.endTime.valueOf()) * OneMillion;
40
40
  }
41
- return new HistoryRPC({
41
+ return new HistoryRpc({
42
42
  requestId: uuid(),
43
43
  query: {
44
- pubSubTopic: params.pubSubTopic,
44
+ pubsubTopic: params.pubSubTopic,
45
45
  contentFilters,
46
46
  pagingInfo,
47
47
  startTime,
@@ -51,21 +51,21 @@ export class HistoryRPC {
51
51
  });
52
52
  }
53
53
  decode(bytes) {
54
- const res = proto.HistoryRPC.decode(bytes);
55
- return new HistoryRPC(res);
54
+ const res = proto.HistoryRpc.decode(bytes);
55
+ return new HistoryRpc(res);
56
56
  }
57
57
  encode() {
58
- return proto.HistoryRPC.encode(this.proto);
58
+ return proto.HistoryRpc.encode(this.proto);
59
59
  }
60
60
  }
61
61
  function directionToProto(pageDirection) {
62
62
  switch (pageDirection) {
63
63
  case PageDirection.BACKWARD:
64
- return proto.PagingInfo.Direction.DIRECTION_BACKWARD_UNSPECIFIED;
64
+ return proto.PagingInfo.Direction.BACKWARD;
65
65
  case PageDirection.FORWARD:
66
- return proto.PagingInfo.Direction.DIRECTION_FORWARD;
66
+ return proto.PagingInfo.Direction.FORWARD;
67
67
  default:
68
- return proto.PagingInfo.Direction.DIRECTION_BACKWARD_UNSPECIFIED;
68
+ return proto.PagingInfo.Direction.BACKWARD;
69
69
  }
70
70
  }
71
71
  //# sourceMappingURL=history_rpc.js.map
@@ -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;IACrB,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,8BAA8B,CAAC;QACnE,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACtD;YACE,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,8BAA8B,CAAC;KACpE;AACH,CAAC"}
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;IACrB,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"}
@@ -1,26 +1,10 @@
1
- import type { ConnectionManager } from "@libp2p/interface-connection-manager";
1
+ import type { Libp2p } from "@libp2p/interface-libp2p";
2
2
  import type { PeerId } from "@libp2p/interface-peer-id";
3
- import type { PeerStore } from "@libp2p/interface-peer-store";
4
- import { Cursor, IDecodedMessage, Index, IStore } from "@waku/interfaces";
3
+ import { Cursor, IDecodedMessage, IStore, ProtocolCreateOptions } from "@waku/interfaces";
5
4
  import { PageDirection } from "./history_rpc.js";
6
5
  export declare const StoreCodec = "/vac/waku/store/2.0.0-beta4";
7
6
  export declare const DefaultPageSize = 10;
8
7
  export { PageDirection };
9
- export interface StoreComponents {
10
- peerStore: PeerStore;
11
- connectionManager: ConnectionManager;
12
- }
13
- export interface CreateOptions {
14
- /**
15
- * The PubSub Topic to use. Defaults to {@link DefaultPubSubTopic}.
16
- *
17
- * The usage of the default pubsub topic is recommended.
18
- * See [Waku v2 Topic Usage Recommendations](https://rfc.vac.dev/spec/23/) for details.
19
- *
20
- * @default {@link DefaultPubSubTopic}
21
- */
22
- pubSubTopic?: string;
23
- }
24
8
  export interface TimeFilter {
25
9
  startTime: Date;
26
10
  endTime: Date;
@@ -30,11 +14,6 @@ export interface QueryOptions {
30
14
  * The peer to query. If undefined, a pseudo-random peer is selected from the connected Waku Store peers.
31
15
  */
32
16
  peerId?: PeerId;
33
- /**
34
- * The pubsub topic to pass to the query.
35
- * See [Waku v2 Topic Usage Recommendations](https://rfc.vac.dev/spec/23/).
36
- */
37
- pubSubTopic?: string;
38
17
  /**
39
18
  * The direction in which pages are retrieved:
40
19
  * - { @link PageDirection.BACKWARD }: Most recent page first.
@@ -64,5 +43,5 @@ export interface QueryOptions {
64
43
  cursor?: Cursor;
65
44
  }
66
45
  export declare function isDefined<T>(msg: T | undefined): msg is T;
67
- export declare function createCursor(message: IDecodedMessage, pubsubTopic?: string): Promise<Index>;
68
- export declare function wakuStore(init?: Partial<CreateOptions>): (components: StoreComponents) => IStore;
46
+ export declare function createCursor(message: IDecodedMessage, pubsubTopic?: string): Promise<Cursor>;
47
+ export declare function wakuStore(init?: Partial<ProtocolCreateOptions>): (libp2p: Libp2p) => IStore;
@@ -1,15 +1,15 @@
1
1
  import { sha256 } from "@noble/hashes/sha256";
2
- import { concat, utf8ToBytes } from "@waku/byte-utils";
3
- import { getPeersForProtocol, selectConnection, selectPeerForProtocol, } from "@waku/libp2p-utils";
4
2
  import { proto_store as proto } from "@waku/proto";
3
+ import { concat, utf8ToBytes } from "@waku/utils/bytes";
5
4
  import debug from "debug";
6
5
  import all from "it-all";
7
6
  import * as lp from "it-length-prefixed";
8
7
  import { pipe } from "it-pipe";
9
8
  import { Uint8ArrayList } from "uint8arraylist";
9
+ import { BaseProtocol } from "../base_protocol.js";
10
10
  import { DefaultPubSubTopic } from "../constants.js";
11
11
  import { toProtoMessage } from "../to_proto_message.js";
12
- import { HistoryRPC, PageDirection } from "./history_rpc.js";
12
+ import { HistoryRpc, PageDirection } from "./history_rpc.js";
13
13
  var HistoryError = proto.HistoryResponse.HistoryError;
14
14
  const log = debug("waku:store");
15
15
  export const StoreCodec = "/vac/waku/store/2.0.0-beta4";
@@ -20,10 +20,11 @@ export { PageDirection };
20
20
  *
21
21
  * The Waku Store protocol can be used to retrieved historical messages.
22
22
  */
23
- class Store {
24
- constructor(components, options) {
25
- this.components = components;
26
- this.pubSubTopic = options?.pubSubTopic ?? DefaultPubSubTopic;
23
+ class Store extends BaseProtocol {
24
+ constructor(libp2p, options) {
25
+ super(StoreCodec, libp2p.peerStore, libp2p.getConnections.bind(libp2p));
26
+ this.libp2p = libp2p;
27
+ this.options = options ?? {};
27
28
  }
28
29
  /**
29
30
  * Do a query to a Waku Store to retrieve historical/missed messages.
@@ -111,6 +112,7 @@ class Store {
111
112
  * or if two decoders with the same content topic are passed.
112
113
  */
113
114
  async *queryGenerator(decoders, options) {
115
+ const { pubSubTopic = DefaultPubSubTopic } = this.options;
114
116
  let startTime, endTime;
115
117
  if (options?.timeFilter) {
116
118
  startTime = options.timeFilter.startTime;
@@ -125,7 +127,7 @@ class Store {
125
127
  });
126
128
  const contentTopics = decoders.map((dec) => dec.contentTopic);
127
129
  const queryOpts = Object.assign({
128
- pubSubTopic: this.pubSubTopic,
130
+ pubSubTopic: pubSubTopic,
129
131
  pageDirection: PageDirection.BACKWARD,
130
132
  pageSize: DefaultPageSize,
131
133
  }, options, { contentTopics, startTime, endTime });
@@ -133,31 +135,13 @@ class Store {
133
135
  ...options,
134
136
  peerId: options?.peerId?.toString(),
135
137
  });
136
- const res = await selectPeerForProtocol(this.components.peerStore, [StoreCodec], options?.peerId);
137
- if (!res) {
138
- throw new Error("Failed to get a peer");
139
- }
140
- const { peer, protocol } = res;
141
- const connections = this.components.connectionManager.getConnections(peer.id);
142
- const connection = selectConnection(connections);
143
- if (!connection)
144
- throw "Failed to get a connection to the peer";
145
- for await (const messages of paginate(connection, protocol, queryOpts, decodersAsMap, options?.cursor)) {
138
+ const peer = await this.getPeer(options?.peerId);
139
+ for await (const messages of paginate(this.newStream.bind(this, peer), queryOpts, decodersAsMap, options?.cursor)) {
146
140
  yield messages;
147
141
  }
148
142
  }
149
- /**
150
- * Returns known peers from the address book (`libp2p.peerStore`) that support
151
- * store protocol. Waku may or may not be currently connected to these peers.
152
- */
153
- async peers() {
154
- return getPeersForProtocol(this.components.peerStore, [StoreCodec]);
155
- }
156
- get peerStore() {
157
- return this.components.peerStore;
158
- }
159
143
  }
160
- async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
144
+ async function* paginate(streamFactory, queryOpts, decoders, cursor) {
161
145
  if (queryOpts.contentTopics.toString() !==
162
146
  Array.from(decoders.keys()).toString()) {
163
147
  throw new Error("Internal error, the decoders should match the query's content topics");
@@ -165,9 +149,9 @@ async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
165
149
  let currentCursor = cursor;
166
150
  while (true) {
167
151
  queryOpts.cursor = currentCursor;
168
- const stream = await connection.newStream(protocol);
169
- const historyRpcQuery = HistoryRPC.createQuery(queryOpts);
170
- log("Querying store peer", connection.remoteAddr.toString(), `for (${queryOpts.pubSubTopic})`, queryOpts.contentTopics);
152
+ const historyRpcQuery = HistoryRpc.createQuery(queryOpts);
153
+ log("Querying store peer", `for (${queryOpts.pubSubTopic})`, queryOpts.contentTopics);
154
+ const stream = await streamFactory();
171
155
  const res = await pipe([historyRpcQuery.encode()], lp.encode(), stream, lp.decode(), async (source) => await all(source));
172
156
  const bytes = new Uint8ArrayList();
173
157
  res.forEach((chunk) => {
@@ -179,8 +163,7 @@ async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
179
163
  break;
180
164
  }
181
165
  const response = reply.response;
182
- if (response.error &&
183
- response.error !== HistoryError.ERROR_NONE_UNSPECIFIED) {
166
+ if (response.error && response.error !== HistoryError.NONE) {
184
167
  throw "History response contains an Error: " + response.error;
185
168
  }
186
169
  if (!response.messages || !response.messages.length) {
@@ -193,7 +176,7 @@ async function* paginate(connection, protocol, queryOpts, decoders, cursor) {
193
176
  if (typeof contentTopic !== "undefined") {
194
177
  const decoder = decoders.get(contentTopic);
195
178
  if (decoder) {
196
- return decoder.fromProtoObj(toProtoMessage(protoMsg));
179
+ return decoder.fromProtoObj(queryOpts.pubSubTopic, toProtoMessage(protoMsg));
197
180
  }
198
181
  }
199
182
  return Promise.resolve(undefined);
@@ -234,10 +217,10 @@ export async function createCursor(message, pubsubTopic = DefaultPubSubTopic) {
234
217
  digest,
235
218
  pubsubTopic,
236
219
  senderTime: messageTime,
237
- receivedTime: messageTime,
220
+ receiverTime: messageTime,
238
221
  };
239
222
  }
240
223
  export function wakuStore(init = {}) {
241
- return (components) => new Store(components, init);
224
+ return (libp2p) => new Store(libp2p, init);
242
225
  }
243
226
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -1,8 +1,9 @@
1
1
  const EmptyMessage = {
2
- payload: undefined,
3
- contentTopic: undefined,
2
+ payload: new Uint8Array(),
3
+ contentTopic: "",
4
4
  version: undefined,
5
5
  timestamp: undefined,
6
+ meta: undefined,
6
7
  rateLimitProof: undefined,
7
8
  ephemeral: undefined,
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"to_proto_message.js","sourceRoot":"","sources":["../../src/lib/to_proto_message.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,SAAS;IACvB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,SAAS;IACzB,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAsB;IACnD,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"to_proto_message.js","sourceRoot":"","sources":["../../src/lib/to_proto_message.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,IAAI,UAAU,EAAE;IACzB,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,SAAS;IACzB,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAsB;IACnD,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC;AACtC,CAAC"}
@@ -1,10 +1,6 @@
1
1
  import { Protocols } from "@waku/interfaces";
2
- import { PeerExchangeCodec } from "@waku/peer-exchange";
3
2
  import debug from "debug";
4
3
  import { pEvent } from "p-event";
5
- import { FilterCodec } from "./filter/index.js";
6
- import { LightPushCodec } from "./light_push/index.js";
7
- import { StoreCodec } from "./store/index.js";
8
4
  const log = debug("waku:wait-for-remote-peer");
9
5
  /**
10
6
  * Wait for a remote peer to be ready given the passed protocols.
@@ -38,22 +34,17 @@ export async function waitForRemotePeer(waku, protocols, timeoutMs) {
38
34
  if (protocols.includes(Protocols.Store)) {
39
35
  if (!waku.store)
40
36
  throw new Error("Cannot wait for Store peer: protocol not mounted");
41
- promises.push(waitForConnectedPeer(waku.store, [StoreCodec]));
37
+ promises.push(waitForConnectedPeer(waku.store));
42
38
  }
43
39
  if (protocols.includes(Protocols.LightPush)) {
44
40
  if (!waku.lightPush)
45
41
  throw new Error("Cannot wait for LightPush peer: protocol not mounted");
46
- promises.push(waitForConnectedPeer(waku.lightPush, [LightPushCodec]));
42
+ promises.push(waitForConnectedPeer(waku.lightPush));
47
43
  }
48
44
  if (protocols.includes(Protocols.Filter)) {
49
45
  if (!waku.filter)
50
46
  throw new Error("Cannot wait for Filter peer: protocol not mounted");
51
- promises.push(waitForConnectedPeer(waku.filter, [FilterCodec]));
52
- }
53
- if (protocols.includes(Protocols.PeerExchange)) {
54
- if (!waku.peerExchange)
55
- throw new Error("Cannot wait for Peer Exchange peer: protocol not mounted");
56
- promises.push(waitForConnectedPeer(waku.peerExchange, [PeerExchangeCodec]));
47
+ promises.push(waitForConnectedPeer(waku.filter));
57
48
  }
58
49
  if (timeoutMs) {
59
50
  await rejectOnTimeout(Promise.all(promises), timeoutMs, "Timed out waiting for a remote peer.");
@@ -65,24 +56,22 @@ export async function waitForRemotePeer(waku, protocols, timeoutMs) {
65
56
  /**
66
57
  * Wait for a peer with the given protocol to be connected.
67
58
  */
68
- async function waitForConnectedPeer(waku, codecs) {
69
- const peers = await waku.peers();
59
+ async function waitForConnectedPeer(protocol) {
60
+ const codec = protocol.multicodec;
61
+ const peers = await protocol.peers();
70
62
  if (peers.length) {
71
- log(`${codecs} peer found: `, peers[0].id.toString());
63
+ log(`${codec} peer found: `, peers[0].id.toString());
72
64
  return;
73
65
  }
74
66
  await new Promise((resolve) => {
75
67
  const cb = (evt) => {
76
- for (const codec of codecs) {
77
- if (evt.detail.protocols.includes(codec)) {
78
- log("Resolving for", codec, evt.detail.protocols);
79
- waku.peerStore.removeEventListener("change:protocols", cb);
80
- resolve();
81
- break;
82
- }
68
+ if (evt.detail.protocols.includes(codec)) {
69
+ log("Resolving for", codec, evt.detail.protocols);
70
+ protocol.peerStore.removeEventListener("change:protocols", cb);
71
+ resolve();
83
72
  }
84
73
  };
85
- waku.peerStore.addEventListener("change:protocols", cb);
74
+ protocol.peerStore.addEventListener("change:protocols", cb);
86
75
  });
87
76
  }
88
77
  /**
@@ -1 +1 @@
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
+ {"version":3,"file":"wait_for_remote_peer.js","sourceRoot":"","sources":["../../src/lib/wait_for_remote_peer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  import type { Stream } from "@libp2p/interface-connection";
2
+ import type { Libp2p } from "@libp2p/interface-libp2p";
2
3
  import type { PeerId } from "@libp2p/interface-peer-id";
3
4
  import type { Multiaddr } from "@multiformats/multiaddr";
4
- import type { IFilter, ILightPush, IPeerExchange, IRelay, IStore, PeerExchangeComponents, Waku } from "@waku/interfaces";
5
+ import type { IFilter, ILightPush, IRelay, IStore, Waku } from "@waku/interfaces";
5
6
  import { Protocols } from "@waku/interfaces";
6
- import type { Libp2p } from "libp2p";
7
- import { FilterComponents } from "./filter/index.js";
8
- import { LightPushComponents } from "./light_push/index.js";
9
- import { StoreComponents } from "./store/index.js";
7
+ import { ConnectionManager } from "./connection_manager.js";
10
8
  export declare const DefaultPingKeepAliveValueSecs = 0;
11
9
  export declare const DefaultRelayKeepAliveValueSecs: number;
12
10
  export declare const DefaultUserAgent = "js-waku";
@@ -15,19 +13,19 @@ export interface WakuOptions {
15
13
  * Set keep alive frequency in seconds: Waku will send a `/ipfs/ping/1.0.0`
16
14
  * request to each peer after the set number of seconds. Set to 0 to disable.
17
15
  *
18
- * @default {@link DefaultPingKeepAliveValueSecs}
16
+ * @default {@link @waku/core.DefaultPingKeepAliveValueSecs}
19
17
  */
20
18
  pingKeepAlive?: number;
21
19
  /**
22
20
  * Set keep alive frequency in seconds: Waku will send a ping message over
23
21
  * relay to each peer after the set number of seconds. Set to 0 to disable.
24
22
  *
25
- * @default {@link DefaultRelayKeepAliveValueSecs}
23
+ * @default {@link @waku/core.DefaultRelayKeepAliveValueSecs}
26
24
  */
27
25
  relayKeepAlive?: number;
28
26
  /**
29
27
  * Set the user agent string to be used in identification of the node.
30
- * @default {@link DefaultUserAgent}
28
+ * @default {@link @waku/core.DefaultUserAgent}
31
29
  */
32
30
  userAgent?: string;
33
31
  }
@@ -37,10 +35,8 @@ export declare class WakuNode implements Waku {
37
35
  store?: IStore;
38
36
  filter?: IFilter;
39
37
  lightPush?: ILightPush;
40
- peerExchange?: IPeerExchange;
41
- private pingKeepAliveTimers;
42
- private relayKeepAliveTimers;
43
- constructor(options: WakuOptions, libp2p: Libp2p, store?: (components: StoreComponents) => IStore, lightPush?: (components: LightPushComponents) => ILightPush, filter?: (components: FilterComponents) => IFilter, peerExchange?: (components: PeerExchangeComponents) => IPeerExchange);
38
+ connectionManager: ConnectionManager;
39
+ constructor(options: WakuOptions, libp2p: Libp2p, store?: (libp2p: Libp2p) => IStore, lightPush?: (libp2p: Libp2p) => ILightPush, filter?: (libp2p: Libp2p) => IFilter);
44
40
  /**
45
41
  * Dials to the provided peer.
46
42
  *
@@ -57,7 +53,4 @@ export declare class WakuNode implements Waku {
57
53
  * @throws if libp2p is not listening on localhost.
58
54
  */
59
55
  getLocalMultiaddrWithID(): string;
60
- private startKeepAlive;
61
- private stopKeepAlive;
62
- private stopAllKeepAlives;
63
56
  }